mirror of
https://github.com/fluencelabs/marine-rs-sdk
synced 2025-03-15 14:30:48 +00:00
progress
This commit is contained in:
parent
e671e835a8
commit
a8fbe2ca6e
@ -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
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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",
|
||||
));
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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 _
|
||||
}
|
||||
|
@ -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 _)
|
||||
}
|
||||
}
|
17
src/lib.rs
17
src/lib.rs
@ -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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user