diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-07-24 15:02:27 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-07-24 15:02:27 +0100 |
| commit | 0e9e0974e0c2a8906e484082dc4e6666faa8a2a7 (patch) | |
| tree | 1a53ccfdb420cd77f5ecfc78bfc04cfba4e4ebc0 /examples/10-transient-0/output | |
| parent | 9308e832ba6043ce66485833fca9eb5f20657f35 (diff) | |
Add struct with sum to transient-0 tests
Diffstat (limited to 'examples/10-transient-0/output')
3 files changed, 33 insertions, 0 deletions
diff --git a/examples/10-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java b/examples/10-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java index c2564aa..6369f93 100644 --- a/examples/10-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java +++ b/examples/10-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java @@ -19,6 +19,7 @@ import org.zwobble.example.types.data.StructWithList; import org.zwobble.example.types.data.StructWithOption; import org.zwobble.example.types.data.StructWithString; import org.zwobble.example.types.data.StructWithStruct; +import org.zwobble.example.types.data.StructWithSum; import org.zwobble.example.types.data.VariantOne; import org.zwobble.example.types.data.VariantTwo; @@ -174,6 +175,20 @@ public class Transient0Tests { ); } + @Test + public void structWithSum() throws IOException { + var value = new StructWithSum( + new VariantTwo(25), + 42 + ); + + assertRoundTripEncoding( + value, + HobgoblinTransient0Data::encodeStructWithSum, + HobgoblinTransient0Data::decodeStructWithSum + ); + } + private <T> void assertRoundTripEncoding( T value, Encoder<T> encoder, diff --git a/examples/10-transient-0/output/rust/src/gen/data.rs b/examples/10-transient-0/output/rust/src/gen/data.rs index dd9af46..0ea6c0f 100644 --- a/examples/10-transient-0/output/rust/src/gen/data.rs +++ b/examples/10-transient-0/output/rust/src/gen/data.rs @@ -82,3 +82,9 @@ pub struct VariantOne { pub struct VariantTwo { pub a: ::core::primitive::i64, } + +#[derive(Debug, PartialEq)] +pub struct StructWithSum { + pub inner: crate::data::SumWithVariants, + pub b: ::core::primitive::i32, +} 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 867318d..cd7b772 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 @@ -209,3 +209,15 @@ pub fn decode_variant_two(reader: &mut impl std::io::Read) -> ::std::io::Result: let a = crate::transient_0::decode_int_64(reader)?; std::io::Result::Ok(crate::data::VariantTwo { a: a }) } + +pub fn encode_struct_with_sum(value: &crate::data::StructWithSum, writer: &mut impl std::io::Write) -> ::std::io::Result::<()> { + todo!(); + 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 b = crate::transient_0::decode_int_32(reader)?; + std::io::Result::Ok(crate::data::StructWithSum { inner: inner, b: b }) +} |
