fix vec size passing

This commit is contained in:
vms 2020-09-22 14:33:15 +03:00
parent f247a84f6d
commit 56368c71f3
8 changed files with 32 additions and 20 deletions

View File

@ -1,6 +1,6 @@
[package] [package]
name = "fluence" 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" description = "Fluence backend SDK for developing backend applications for the Fluence network"
documentation = "https://docs.rs/fluence/" documentation = "https://docs.rs/fluence/"
repository = "https://github.com/fluencelabs/rust-sdk" repository = "https://github.com/fluencelabs/rust-sdk"
@ -18,8 +18,8 @@ all-features = true
path = "src/lib.rs" path = "src/lib.rs"
[dependencies] [dependencies]
fluence-sdk-macro = { path = "crates/macro", version = "=0.2.4" } fluence-sdk-macro = { path = "crates/macro", version = "=0.2.5" }
fluence-sdk-main = { path = "crates/main", version = "=0.2.4" } fluence-sdk-main = { path = "crates/main", version = "=0.2.5" }
[features] [features]
# Print some internal logs by log_utf8_string # Print some internal logs by log_utf8_string

View File

@ -1,6 +1,6 @@
[package] [package]
name = "fluence-sdk-macro" 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" edition = "2018"
description = "Definition of `#[invoke_handler]` attribute" description = "Definition of `#[invoke_handler]` attribute"
documentation = "https://docs.rs/fluence/fluence-sdk-macro" documentation = "https://docs.rs/fluence/fluence-sdk-macro"
@ -17,4 +17,4 @@ all-features = true
proc-macro = true proc-macro = true
[dependencies] [dependencies]
fluence-sdk-wit = { path = "../wit", version = "=0.2.4" } fluence-sdk-wit = { path = "../wit", version = "=0.2.5" }

View File

@ -1,6 +1,6 @@
[package] [package]
name = "fluence-sdk-main" 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" edition = "2018"
description = "Rust SDK for applications for the Fluence network" description = "Rust SDK for applications for the Fluence network"
documentation = "https://docs.rs/fluence/fluence-sdk-macro" documentation = "https://docs.rs/fluence/fluence-sdk-macro"
@ -19,7 +19,7 @@ crate-type = ["rlib"]
[dependencies] [dependencies]
log = { version = "0.4.8", features = ["std"] } 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" serde = "1.0.115"
[dev-dependencies] [dev-dependencies]

View File

@ -19,7 +19,7 @@
#![allow(clippy::missing_safety_doc)] #![allow(clippy::missing_safety_doc)]
#![allow(clippy::needless_doctest_main)] #![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( #![deny(
dead_code, dead_code,
nonstandard_style, nonstandard_style,

View File

@ -1,6 +1,6 @@
[package] [package]
name = "fluence-sdk-wit" 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" edition = "2018"
description = "Webassembly interface-types generator" description = "Webassembly interface-types generator"
documentation = "https://docs.rs/fluence/fluence-sdk-macro" documentation = "https://docs.rs/fluence/fluence-sdk-macro"

View File

@ -14,7 +14,7 @@
* limitations under the License. * 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( #![deny(
dead_code, dead_code,
nonstandard_style, nonstandard_style,

View File

@ -27,19 +27,30 @@ pub(crate) fn generate_vector_serializer(
unimplemented!() unimplemented!()
} }
} }
ParsedType::I8 ParsedType::I8 | ParsedType::U8 => {
| ParsedType::I16
| ParsedType::I32
| ParsedType::I64
| ParsedType::U8
| ParsedType::U16
| ParsedType::U32
| ParsedType::U64 => {
quote! { quote! {
let arg = std::mem::ManuallyDrop::new(arg); let arg = std::mem::ManuallyDrop::new(arg);
(arg.as_ptr() as _, arg.len() as _) (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 => { ParsedType::F32 => {
quote! { quote! {
let mut result: Vec<u32> = Vec::with_capacity(arg.len()); let mut result: Vec<u32> = Vec::with_capacity(arg.len());
@ -184,7 +195,7 @@ pub(crate) fn generate_vector_deserializer(
while let Some(offset) = arg.next() { while let Some(offset) = arg.next() {
let size = arg.next().unwrap(); let size = arg.next().unwrap();
let value = #deserializer_ident(offset, size); let value = #deserializer_ident(offset as _, size as _);
result.push(value); result.push(value);
} }
@ -212,6 +223,7 @@ pub(crate) fn generate_vector_deserializer(
let mut result = Vec::with_capacity(arg.len()); let mut result = Vec::with_capacity(arg.len());
for value in arg { for value in arg {
println!("value is {}", value);
result.push(value as _); result.push(value as _);
} }

View File

@ -55,7 +55,7 @@
//! pub fn curl_get(url: String) -> String; //! 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( #![deny(
dead_code, dead_code,
nonstandard_style, nonstandard_style,