mirror of
https://github.com/fluencelabs/marine-rs-sdk
synced 2025-03-15 22:30:50 +00:00
temporary
This commit is contained in:
parent
a8fbe2ca6e
commit
9e7d08511a
@ -20,6 +20,17 @@ use quote::quote;
|
|||||||
pub(crate) fn generate_vector_serializer(
|
pub(crate) fn generate_vector_serializer(
|
||||||
value_ty: &ParsedType,
|
value_ty: &ParsedType,
|
||||||
arg_name: &str,
|
arg_name: &str,
|
||||||
|
) -> proc_macro2::TokenStream {
|
||||||
|
let serializer_func = generate_vector_serializer_impl(value_ty, arg_name);
|
||||||
|
|
||||||
|
quote! {
|
||||||
|
#serializer_func
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn generate_vector_serializer_impl(
|
||||||
|
value_ty: &ParsedType,
|
||||||
|
arg_name: &str,
|
||||||
) -> proc_macro2::TokenStream {
|
) -> proc_macro2::TokenStream {
|
||||||
let values_serializer = match value_ty {
|
let values_serializer = match value_ty {
|
||||||
ParsedType::Boolean(_) => {
|
ParsedType::Boolean(_) => {
|
||||||
@ -29,25 +40,21 @@ pub(crate) fn generate_vector_serializer(
|
|||||||
}
|
}
|
||||||
ParsedType::I8(_) | ParsedType::U8(_) => {
|
ParsedType::I8(_) | ParsedType::U8(_) => {
|
||||||
quote! {
|
quote! {
|
||||||
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(_) => {
|
ParsedType::I16(_) | ParsedType::U16(_) => {
|
||||||
quote! {
|
quote! {
|
||||||
let arg = std::mem::ManuallyDrop::new(arg);
|
|
||||||
(arg.as_ptr() as _, (2 * arg.len()) as _)
|
(arg.as_ptr() as _, (2 * arg.len()) as _)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ParsedType::I32(_) | ParsedType::U32(_) => {
|
ParsedType::I32(_) | ParsedType::U32(_) => {
|
||||||
quote! {
|
quote! {
|
||||||
let arg = std::mem::ManuallyDrop::new(arg);
|
|
||||||
(arg.as_ptr() as _, (4 * arg.len()) as _)
|
(arg.as_ptr() as _, (4 * arg.len()) as _)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ParsedType::I64(_) | ParsedType::U64(_) => {
|
ParsedType::I64(_) | ParsedType::U64(_) => {
|
||||||
quote! {
|
quote! {
|
||||||
let arg = std::mem::ManuallyDrop::new(arg);
|
|
||||||
(arg.as_ptr() as _, (8 * arg.len()) as _)
|
(arg.as_ptr() as _, (8 * arg.len()) as _)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -58,7 +65,6 @@ pub(crate) fn generate_vector_serializer(
|
|||||||
result.push(value.to_bits());
|
result.push(value.to_bits());
|
||||||
}
|
}
|
||||||
|
|
||||||
let result = std::mem::ManuallyDrop::new(result);
|
|
||||||
(result.as_ptr() as _, (4 * result.len()) as _)
|
(result.as_ptr() as _, (4 * result.len()) as _)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -69,7 +75,6 @@ pub(crate) fn generate_vector_serializer(
|
|||||||
result.push(value.to_bits());
|
result.push(value.to_bits());
|
||||||
}
|
}
|
||||||
|
|
||||||
let result = std::mem::ManuallyDrop::new(result);
|
|
||||||
(result.as_ptr() as _, (8 * result.len()) as _)
|
(result.as_ptr() as _, (8 * result.len()) as _)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -78,12 +83,10 @@ pub(crate) fn generate_vector_serializer(
|
|||||||
let mut result: Vec<u32> = Vec::with_capacity(arg.len());
|
let mut result: Vec<u32> = Vec::with_capacity(arg.len());
|
||||||
|
|
||||||
for value in arg {
|
for value in arg {
|
||||||
let value = std::mem::ManuallyDrop::new(value);
|
|
||||||
result.push(value.as_ptr() as _);
|
result.push(value.as_ptr() as _);
|
||||||
result.push(value.len() as _);
|
result.push(value.len() as _);
|
||||||
}
|
}
|
||||||
|
|
||||||
let result = std::mem::ManuallyDrop::new(result);
|
|
||||||
(result.as_ptr() as _, (4 * result.len()) as _)
|
(result.as_ptr() as _, (4 * result.len()) as _)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -102,7 +105,6 @@ pub(crate) fn generate_vector_serializer(
|
|||||||
result.push(size as _);
|
result.push(size as _);
|
||||||
}
|
}
|
||||||
|
|
||||||
let result = std::mem::ManuallyDrop::new(result);
|
|
||||||
(result.as_ptr() as _, (4 * result.len()) as _)
|
(result.as_ptr() as _, (4 * result.len()) as _)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -115,7 +117,6 @@ pub(crate) fn generate_vector_serializer(
|
|||||||
result.push(value.__fce_generated_serialize() as _);
|
result.push(value.__fce_generated_serialize() as _);
|
||||||
}
|
}
|
||||||
|
|
||||||
let result = std::mem::ManuallyDrop::new(result);
|
|
||||||
(result.as_ptr() as _, (4 * result.len()) as _)
|
(result.as_ptr() as _, (4 * result.len()) as _)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user