This commit is contained in:
vms 2021-03-09 15:45:05 +03:00
parent e671e835a8
commit a8fbe2ca6e
8 changed files with 19 additions and 17 deletions

View File

@ -16,10 +16,12 @@ all-features = true
[lib]
path = "src/lib.rs"
name = "fluence"
[dependencies]
fluence-sdk-macro = { path = "crates/macro", version = "=0.5.0" }
fluence-sdk-main = { path = "crates/main", version = "=0.5.0" }
serde = "=1.0.118"
[features]
# Print some internal logs by log_utf8_string

View File

@ -31,18 +31,11 @@
)]
#![warn(rust_2018_idioms)]
mod call_parameters;
mod export_allocator;
#[cfg(any(feature = "debug", feature = "logger"))]
mod logger;
pub mod mounted_binary;
mod result;
pub use call_parameters::CallParameters;
pub use call_parameters::SecurityTetraplet;
#[cfg(target_arch = "wasm32")]
pub use call_parameters::get_call_parameters;
pub use export_allocator::allocate;
pub use export_allocator::deallocate;

View File

@ -71,7 +71,7 @@ fn check_record(record: &syn::ItemStruct) -> Result<()> {
{
return Err(Error::new(
record.span(),
"#[fce] couldn't be applied to a struct with generics",
"#[fce] couldn't be applied to a struct with generics or lifetimes",
));
}

View File

@ -145,7 +145,9 @@ fn generate_mem_forget(
match passing_style {
// result will be deleted by IT side
Some(PassingStyle::ByValue) => quote! { std::mem::forget(result); },
Some(PassingStyle::ByValue) => {
quote! { fluence::internal::add_object_to_release(Box::new(result)); }
}
Some(PassingStyle::ByRef) | Some(PassingStyle::ByMutRef) => {
mem_forget_by_args(args, converted_args)
}

View File

@ -75,7 +75,7 @@ fn generate_serializer_fn(record: &fce_ast_types::AstRecordItem) -> proc_macro2:
#serializer
let raw_record_ptr = raw_record.as_ptr();
std::mem::forget(raw_record);
fluence::internal::add_object_to_release(Box::new(raw_record));
raw_record_ptr as _
}

View File

@ -59,7 +59,7 @@ pub fn get_call_parameters() -> CallParameters {
// it's safe until it is executed on standard Fluence node with appropriate import function
unsafe {
get_call_raw_parameters();
let raw_call_parameters = crate::result::get_result_ptr();
let raw_call_parameters = crate::internal::get_result_ptr();
CallParameters::__fce_generated_deserialize(raw_call_parameters as _)
}
}

View File

@ -67,21 +67,26 @@
)]
#![warn(rust_2018_idioms)]
mod call_parameters;
mod mounted_binary;
extern crate self as fluence;
pub use fluence_sdk_macro::fce;
pub use fluence_sdk_main::CallParameters;
pub use fluence_sdk_main::SecurityTetraplet;
pub use call_parameters::CallParameters;
pub use call_parameters::SecurityTetraplet;
#[cfg(target_arch = "wasm32")]
pub use fluence_sdk_main::get_call_parameters;
pub use call_parameters::get_call_parameters;
#[cfg(feature = "logger")]
pub use fluence_sdk_main::WasmLoggerBuilder;
#[cfg(feature = "logger")]
pub use fluence_sdk_main::TargetMap;
pub use fluence_sdk_main::mounted_binary::Result as MountedBinaryResult;
pub use fluence_sdk_main::mounted_binary::StringResult as MountedBinaryStringResult;
pub use fluence_sdk_main::mounted_binary::SUCCESS_CODE as BINARY_SUCCESS_CODE;
pub use mounted_binary::Result as MountedBinaryResult;
pub use mounted_binary::StringResult as MountedBinaryStringResult;
pub use mounted_binary::SUCCESS_CODE as BINARY_SUCCESS_CODE;
/// These API functions are intended for internal usage in generated code.
/// Normally, you shouldn't use them.