summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/10-transient-0/output/rust/src/gen/data/transient_0.rs4
-rw-r--r--examples/10-transient-0/output/rust/src/lib.rs14
2 files changed, 14 insertions, 4 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 2945bdc..318e4c6 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
@@ -45,12 +45,12 @@ pub fn decode_struct_with_string(reader: &mut impl std::io::Read) -> crate::data
}
pub fn encode_outer_struct(value: &crate::data::OuterStruct, writer: &mut impl std::io::Write) {
- todo!();
+ crate::data::transient_0::encode_inner_struct(&value.inner, writer);
crate::transient_0::encode_int_32(&value.c, writer);
}
pub fn decode_outer_struct(reader: &mut impl std::io::Read) -> crate::data::OuterStruct {
- let inner = todo!();
+ let inner = crate::data::transient_0::decode_inner_struct(reader);
let c = crate::transient_0::decode_int_32(reader);
crate::data::OuterStruct { inner: inner, c: c }
}
diff --git a/examples/10-transient-0/output/rust/src/lib.rs b/examples/10-transient-0/output/rust/src/lib.rs
index 9b53c0e..6468674 100644
--- a/examples/10-transient-0/output/rust/src/lib.rs
+++ b/examples/10-transient-0/output/rust/src/lib.rs
@@ -4,8 +4,7 @@ pub mod transient_0;
#[cfg(test)]
mod test {
use std::io::Cursor;
- use super::data::StructWithInt32;
- use super::data::StructWithInt64;
+ use super::data::{InnerStruct, OuterStruct, StructWithInt32, StructWithInt64};
#[test]
fn struct_with_int_32() {
@@ -29,6 +28,17 @@ mod test {
);
}
+ #[test]
+ fn nested_struct() {
+ let value = OuterStruct { inner: InnerStruct { a: 10, b: 25 }, c: 42 };
+
+ assert_round_trip_encoding(
+ value,
+ super::data::transient_0::encode_outer_struct,
+ super::data::transient_0::decode_outer_struct,
+ );
+ }
+
fn assert_round_trip_encoding<T: std::cmp::PartialEq + std::fmt::Debug>(
value: T,
encode: impl Fn(&T, &mut Cursor<Vec<u8>>),