From b3a8f3cc31ba8a87270e85d9f5026d784f01942e Mon Sep 17 00:00:00 2001 From: vms Date: Sat, 22 Aug 2020 12:04:47 +0300 Subject: [PATCH] make fce_generated_serialize work wirh self ref --- crates/main/src/lib.rs | 2 +- crates/wit/src/token_stream_generator/record_generator.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/main/src/lib.rs b/crates/main/src/lib.rs index c4b4926..45ec430 100644 --- a/crates/main/src/lib.rs +++ b/crates/main/src/lib.rs @@ -56,7 +56,7 @@ pub trait FCEStructSerializable { // Serialize the provided record to a Vec, returns pointer to it in a form compatible with // record.lift_memory. // The caller should manage the lifetime of returned pointer. - fn __fce_generated_serialize(self) -> *const u8; + fn __fce_generated_serialize(&self) -> *const u8; // Deserialize record from a pointer (normally, come from record.lower_memory). unsafe fn __fce_generated_deserialize(record_ptr: *const u8) -> Self; diff --git a/crates/wit/src/token_stream_generator/record_generator.rs b/crates/wit/src/token_stream_generator/record_generator.rs index b5e2de8..88a5b65 100644 --- a/crates/wit/src/token_stream_generator/record_generator.rs +++ b/crates/wit/src/token_stream_generator/record_generator.rs @@ -79,8 +79,8 @@ fn generate_serializer_fn(record: &fce_ast_types::AstRecordItem) -> proc_macro2: let serializer = record.generate_serializer(); quote::quote! { - fn __fce_generated_serialize(self) -> *const u8 { - let mut raw_record = Vec::new(); + fn __fce_generated_serialize(&self) -> *const u8 { + let mut raw_record: Vec = Vec::new(); #serializer