diff options
Diffstat (limited to 'examples/11-transient-0')
4 files changed, 31 insertions, 0 deletions
diff --git a/examples/11-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java b/examples/11-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java index 6369f93..3393973 100644 --- a/examples/11-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java +++ b/examples/11-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java @@ -17,6 +17,7 @@ import org.zwobble.example.types.data.StructWithInt32; import org.zwobble.example.types.data.StructWithInt64; import org.zwobble.example.types.data.StructWithList; import org.zwobble.example.types.data.StructWithOption; +import org.zwobble.example.types.data.StructWithShared; import org.zwobble.example.types.data.StructWithString; import org.zwobble.example.types.data.StructWithStruct; import org.zwobble.example.types.data.StructWithSum; @@ -189,6 +190,17 @@ public class Transient0Tests { ); } + @Test + public void structWithShared() throws IOException { + var value = new StructWithShared(new StructWithInt32(10, 25)); + + assertRoundTripEncoding( + value, + HobgoblinTransient0Data::encodeStructWithShared, + HobgoblinTransient0Data::decodeStructWithShared + ); + } + private <T> void assertRoundTripEncoding( T value, Encoder<T> encoder, diff --git a/examples/11-transient-0/output/rust/src/gen/data.rs b/examples/11-transient-0/output/rust/src/gen/data.rs index 0ea6c0f..df221bb 100644 --- a/examples/11-transient-0/output/rust/src/gen/data.rs +++ b/examples/11-transient-0/output/rust/src/gen/data.rs @@ -88,3 +88,8 @@ pub struct StructWithSum { pub inner: crate::data::SumWithVariants, pub b: ::core::primitive::i32, } + +#[derive(Debug, PartialEq)] +pub struct StructWithShared { + pub inner: ::std::sync::Arc::<crate::data::StructWithInt32>, +} 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 82fb5f7..12f69e8 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 @@ -221,3 +221,13 @@ pub fn decode_struct_with_sum(reader: &mut impl std::io::Read) -> ::std::io::Res let b = crate::transient_0::decode_int_32(reader)?; std::io::Result::Ok(crate::data::StructWithSum { inner: inner, b: b }) } + +pub fn encode_struct_with_shared(value: &crate::data::StructWithShared, writer: &mut impl std::io::Write) -> ::std::io::Result::<()> { + todo!(); + ::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!(); + std::io::Result::Ok(crate::data::StructWithShared { inner: inner }) +} diff --git a/examples/11-transient-0/src/data.hob b/examples/11-transient-0/src/data.hob index bbfd882..57fe640 100644 --- a/examples/11-transient-0/src/data.hob +++ b/examples/11-transient-0/src/data.hob @@ -61,3 +61,7 @@ struct StructWithSum { field inner: SumWithVariants; field b: Int32; } + +struct StructWithShared { + field inner: Shared[StructWithInt32]; +} |
