diff options
Diffstat (limited to 'examples/10-transient-0/output/rust')
| -rw-r--r-- | examples/10-transient-0/output/rust/src/gen/data/transient_0.rs | 4 | ||||
| -rw-r--r-- | examples/10-transient-0/output/rust/src/lib.rs | 16 |
2 files changed, 17 insertions, 3 deletions
diff --git a/examples/10-transient-0/output/rust/src/gen/data/transient_0.rs b/examples/10-transient-0/output/rust/src/gen/data/transient_0.rs index cd7b772..82fb5f7 100644 --- a/examples/10-transient-0/output/rust/src/gen/data/transient_0.rs +++ b/examples/10-transient-0/output/rust/src/gen/data/transient_0.rs @@ -211,13 +211,13 @@ pub fn decode_variant_two(reader: &mut impl std::io::Read) -> ::std::io::Result: } pub fn encode_struct_with_sum(value: &crate::data::StructWithSum, writer: &mut impl std::io::Write) -> ::std::io::Result::<()> { - todo!(); + crate::data::transient_0::encode_sum_with_variants(&value.inner, writer)?; crate::transient_0::encode_int_32(&value.b, writer)?; ::std::io::Result::Ok(()) } pub fn decode_struct_with_sum(reader: &mut impl std::io::Read) -> ::std::io::Result::<crate::data::StructWithSum> { - let inner = todo!(); + let inner = crate::data::transient_0::decode_sum_with_variants(reader)?; let b = crate::transient_0::decode_int_32(reader)?; std::io::Result::Ok(crate::data::StructWithSum { inner: inner, b: b }) } diff --git a/examples/10-transient-0/output/rust/src/lib.rs b/examples/10-transient-0/output/rust/src/lib.rs index ffd923a..e31e1fb 100644 --- a/examples/10-transient-0/output/rust/src/lib.rs +++ b/examples/10-transient-0/output/rust/src/lib.rs @@ -4,7 +4,7 @@ pub mod transient_0; #[cfg(test)] mod test { use std::io::Cursor; - use super::data::{EnumWithVariants, StructWithBool, StructWithEnum, StructWithInt32, StructWithInt64, StructWithList, StructWithOption, StructWithString, StructWithStruct, SumWithVariants, VariantOne, VariantTwo }; + use super::data::{EnumWithVariants, StructWithBool, StructWithEnum, StructWithInt32, StructWithInt64, StructWithList, StructWithOption, StructWithString, StructWithStruct, StructWithSum, SumWithVariants, VariantOne, VariantTwo }; #[test] fn struct_with_bool() { @@ -154,6 +154,20 @@ mod test { ); } + #[test] + fn struct_with_sum() { + let value = StructWithSum { + inner: SumWithVariants::VariantTwo(VariantTwo { a: 25 }), + b: 42, + }; + + assert_round_trip_encoding( + value, + super::data::transient_0::encode_struct_with_sum, + super::data::transient_0::decode_struct_with_sum, + ); + } + 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<()>, |
