From 56368c71f3179409ac089c6aeb9159c457a99a1d Mon Sep 17 00:00:00 2001 From: vms Date: Tue, 22 Sep 2020 14:33:15 +0300 Subject: [PATCH] fix vec size passing --- Cargo.toml | 6 ++--- crates/macro/Cargo.toml | 4 +-- crates/main/Cargo.toml | 4 +-- crates/main/src/lib.rs | 2 +- crates/wit/Cargo.toml | 2 +- crates/wit/src/lib.rs | 2 +- crates/wit/src/parsed_type/vector_utils.rs | 30 +++++++++++++++------- src/lib.rs | 2 +- 8 files changed, 32 insertions(+), 20 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index ae04b0f..91032f2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "fluence" -version = "0.2.4" # remember to update html_root_url +version = "0.2.5" # remember to update html_root_url description = "Fluence backend SDK for developing backend applications for the Fluence network" documentation = "https://docs.rs/fluence/" repository = "https://github.com/fluencelabs/rust-sdk" @@ -18,8 +18,8 @@ all-features = true path = "src/lib.rs" [dependencies] -fluence-sdk-macro = { path = "crates/macro", version = "=0.2.4" } -fluence-sdk-main = { path = "crates/main", version = "=0.2.4" } +fluence-sdk-macro = { path = "crates/macro", version = "=0.2.5" } +fluence-sdk-main = { path = "crates/main", version = "=0.2.5" } [features] # Print some internal logs by log_utf8_string diff --git a/crates/macro/Cargo.toml b/crates/macro/Cargo.toml index 4b7fa65..a836834 100644 --- a/crates/macro/Cargo.toml +++ b/crates/macro/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "fluence-sdk-macro" -version = "0.2.4" # remember to update html_root_url +version = "0.2.5" # remember to update html_root_url edition = "2018" description = "Definition of `#[invoke_handler]` attribute" documentation = "https://docs.rs/fluence/fluence-sdk-macro" @@ -17,4 +17,4 @@ all-features = true proc-macro = true [dependencies] -fluence-sdk-wit = { path = "../wit", version = "=0.2.4" } +fluence-sdk-wit = { path = "../wit", version = "=0.2.5" } diff --git a/crates/main/Cargo.toml b/crates/main/Cargo.toml index 96bd667..8551d30 100644 --- a/crates/main/Cargo.toml +++ b/crates/main/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "fluence-sdk-main" -version = "0.2.4" # remember to update html_root_url +version = "0.2.5" # remember to update html_root_url edition = "2018" description = "Rust SDK for applications for the Fluence network" documentation = "https://docs.rs/fluence/fluence-sdk-macro" @@ -19,7 +19,7 @@ crate-type = ["rlib"] [dependencies] log = { version = "0.4.8", features = ["std"] } -fluence-sdk-macro = { path = "../macro", version = "=0.2.4" } +fluence-sdk-macro = { path = "../macro", version = "=0.2.5" } serde = "1.0.115" [dev-dependencies] diff --git a/crates/main/src/lib.rs b/crates/main/src/lib.rs index b72f867..6d9c589 100644 --- a/crates/main/src/lib.rs +++ b/crates/main/src/lib.rs @@ -19,7 +19,7 @@ #![allow(clippy::missing_safety_doc)] #![allow(clippy::needless_doctest_main)] -#![doc(html_root_url = "https://docs.rs/fluence-sdk-main/0.2.4")] +#![doc(html_root_url = "https://docs.rs/fluence-sdk-main/0.2.5")] #![deny( dead_code, nonstandard_style, diff --git a/crates/wit/Cargo.toml b/crates/wit/Cargo.toml index abf4545..1248443 100644 --- a/crates/wit/Cargo.toml +++ b/crates/wit/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "fluence-sdk-wit" -version = "0.2.4" # remember to update html_root_url +version = "0.2.5" # remember to update html_root_url edition = "2018" description = "Webassembly interface-types generator" documentation = "https://docs.rs/fluence/fluence-sdk-macro" diff --git a/crates/wit/src/lib.rs b/crates/wit/src/lib.rs index b2fe996..ab684c1 100644 --- a/crates/wit/src/lib.rs +++ b/crates/wit/src/lib.rs @@ -14,7 +14,7 @@ * limitations under the License. */ -#![doc(html_root_url = "https://docs.rs/wit-support/0.2.4")] +#![doc(html_root_url = "https://docs.rs/wit-support/0.2.5")] #![deny( dead_code, nonstandard_style, diff --git a/crates/wit/src/parsed_type/vector_utils.rs b/crates/wit/src/parsed_type/vector_utils.rs index ef08047..895169b 100644 --- a/crates/wit/src/parsed_type/vector_utils.rs +++ b/crates/wit/src/parsed_type/vector_utils.rs @@ -27,19 +27,30 @@ pub(crate) fn generate_vector_serializer( unimplemented!() } } - ParsedType::I8 - | ParsedType::I16 - | ParsedType::I32 - | ParsedType::I64 - | ParsedType::U8 - | ParsedType::U16 - | ParsedType::U32 - | ParsedType::U64 => { + ParsedType::I8 | ParsedType::U8 => { quote! { let arg = std::mem::ManuallyDrop::new(arg); (arg.as_ptr() as _, arg.len() as _) } } + ParsedType::I16 | ParsedType::U16 => { + quote! { + let arg = std::mem::ManuallyDrop::new(arg); + (arg.as_ptr() as _, (2 * arg.len()) as _) + } + } + ParsedType::I32 | ParsedType::U32 => { + quote! { + let arg = std::mem::ManuallyDrop::new(arg); + (arg.as_ptr() as _, (4 * arg.len()) as _) + } + } + ParsedType::I64 | ParsedType::U64 => { + quote! { + let arg = std::mem::ManuallyDrop::new(arg); + (arg.as_ptr() as _, (8 * arg.len()) as _) + } + } ParsedType::F32 => { quote! { let mut result: Vec = Vec::with_capacity(arg.len()); @@ -184,7 +195,7 @@ pub(crate) fn generate_vector_deserializer( while let Some(offset) = arg.next() { let size = arg.next().unwrap(); - let value = #deserializer_ident(offset, size); + let value = #deserializer_ident(offset as _, size as _); result.push(value); } @@ -212,6 +223,7 @@ pub(crate) fn generate_vector_deserializer( let mut result = Vec::with_capacity(arg.len()); for value in arg { + println!("value is {}", value); result.push(value as _); } diff --git a/src/lib.rs b/src/lib.rs index 25ac2e1..3d77b48 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -55,7 +55,7 @@ //! pub fn curl_get(url: String) -> String; //! } //! ``` -#![doc(html_root_url = "https://docs.rs/fluence/0.2.4")] +#![doc(html_root_url = "https://docs.rs/fluence/0.2.5")] #![deny( dead_code, nonstandard_style,