From 356c314cad5c461944b441aaa0b332ab354c5022 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 25 Jul 2026 17:57:13 +0100 Subject: Test struct with shared sum and variant in rust-transient-0 --- .../test/java/org/zwobble/example/Transient0Tests.java | 2 +- examples/11-transient-0/output/rust/src/lib.rs | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) (limited to 'examples/11-transient-0/output') 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 621f195..4bfcec2 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 @@ -228,7 +228,7 @@ public class Transient0Tests { } @Test - public void structWithSumAndVariant() throws IOException { + public void structWithSharedSumAndVariant() throws IOException { var a = new VariantOne(10); var value = new StructWithSharedSumAndVariant(a, a); diff --git a/examples/11-transient-0/output/rust/src/lib.rs b/examples/11-transient-0/output/rust/src/lib.rs index a1f77c9..63e7c67 100644 --- a/examples/11-transient-0/output/rust/src/lib.rs +++ b/examples/11-transient-0/output/rust/src/lib.rs @@ -5,7 +5,7 @@ pub mod transient_0; mod test { use std::io::Cursor; use std::sync::Arc; - use super::data::{EnumWithVariants, StructWithBool, StructWithDifferentSharedTypes, StructWithEnum, StructWithInt32, StructWithInt64, StructWithList, StructWithListOfShared, StructWithOption, StructWithString, StructWithStruct, StructWithSum, SumWithVariants, VariantOne, VariantTwo }; + use super::data::{EnumWithVariants, StructWithBool, StructWithDifferentSharedTypes, StructWithEnum, StructWithInt32, StructWithInt64, StructWithList, StructWithListOfShared, StructWithOption, StructWithSharedSumAndVariant, StructWithString, StructWithStruct, StructWithSum, SumWithVariants, VariantOne, VariantTwo }; #[test] fn struct_with_bool() { @@ -199,6 +199,20 @@ mod test { ); } + #[test] + fn struct_with_shared_sum_and_variant() { + let a = Arc::new(SumWithVariants::VariantOne(VariantOne { a: 10 })); + let b = Arc::new(VariantOne { a: 10 }); + + let value = StructWithSharedSumAndVariant { a, b }; + + assert_round_trip_encoding( + value, + super::data::transient_0::encode_struct_with_shared_sum_and_variant, + super::data::transient_0::decode_struct_with_shared_sum_and_variant, + ); + } + fn assert_round_trip_encoding( value: T, encode: impl Fn(&T, &mut Cursor>) -> std::io::Result<()>, -- cgit v1.2.3