summaryrefslogtreecommitdiff
path: root/examples/11-transient-0/output
diff options
context:
space:
mode:
Diffstat (limited to 'examples/11-transient-0/output')
-rw-r--r--examples/11-transient-0/output/rust/src/gen/data/transient_0.rs4
-rw-r--r--examples/11-transient-0/output/rust/src/lib.rs14
2 files changed, 15 insertions, 3 deletions
diff --git a/examples/11-transient-0/output/rust/src/gen/data/transient_0.rs b/examples/11-transient-0/output/rust/src/gen/data/transient_0.rs
index 12f69e8..52ae7e1 100644
--- a/examples/11-transient-0/output/rust/src/gen/data/transient_0.rs
+++ b/examples/11-transient-0/output/rust/src/gen/data/transient_0.rs
@@ -223,11 +223,11 @@ pub fn decode_struct_with_sum(reader: &mut impl std::io::Read) -> ::std::io::Res
}
pub fn encode_struct_with_shared(value: &crate::data::StructWithShared, writer: &mut impl std::io::Write) -> ::std::io::Result::<()> {
- todo!();
+ crate::data::transient_0::encode_struct_with_int_32((&value.inner).as_ref(), writer)?;
::std::io::Result::Ok(())
}
pub fn decode_struct_with_shared(reader: &mut impl std::io::Read) -> ::std::io::Result::<crate::data::StructWithShared> {
- let inner = todo!();
+ let inner = ::std::sync::Arc::new(crate::data::transient_0::decode_struct_with_int_32(reader)?);
std::io::Result::Ok(crate::data::StructWithShared { inner: inner })
}
diff --git a/examples/11-transient-0/output/rust/src/lib.rs b/examples/11-transient-0/output/rust/src/lib.rs
index e31e1fb..6368af2 100644
--- a/examples/11-transient-0/output/rust/src/lib.rs
+++ b/examples/11-transient-0/output/rust/src/lib.rs
@@ -4,7 +4,8 @@ pub mod transient_0;
#[cfg(test)]
mod test {
use std::io::Cursor;
- use super::data::{EnumWithVariants, StructWithBool, StructWithEnum, StructWithInt32, StructWithInt64, StructWithList, StructWithOption, StructWithString, StructWithStruct, StructWithSum, SumWithVariants, VariantOne, VariantTwo };
+ use std::sync::Arc;
+ use super::data::{EnumWithVariants, StructWithBool, StructWithEnum, StructWithInt32, StructWithInt64, StructWithList, StructWithOption, StructWithShared, StructWithString, StructWithStruct, StructWithSum, SumWithVariants, VariantOne, VariantTwo };
#[test]
fn struct_with_bool() {
@@ -168,6 +169,17 @@ mod test {
);
}
+ #[test]
+ fn struct_with_shared() {
+ let value = StructWithShared { inner: Arc::new(StructWithInt32 { a: 10, b: 25 }) };
+
+ assert_round_trip_encoding(
+ value,
+ super::data::transient_0::encode_struct_with_shared,
+ super::data::transient_0::decode_struct_with_shared,
+ );
+ }
+
fn assert_round_trip_encoding<T: std::cmp::PartialEq + std::fmt::Debug>(
value: T,
encode: impl Fn(&T, &mut Cursor<Vec<u8>>) -> std::io::Result<()>,