diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-07-12 11:20:44 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-07-12 11:20:44 +0100 |
| commit | ed2fc42b45faa1392342ca7c62e4ad580091bf60 (patch) | |
| tree | a51bcc6c2f38a645eeed52ae804c6f15dce57b49 /examples | |
| parent | c33905c4351a02327358284e6de4579a5e311326 (diff) | |
Support sum types in Java transient-0
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/10-transient-0/output/java-junit/src/test/java/org/zwobble/example/Transient0Tests.java | 17 | ||||
| -rw-r--r-- | examples/10-transient-0/src/data.hob | 13 |
2 files changed, 30 insertions, 0 deletions
diff --git a/examples/10-transient-0/output/java-junit/src/test/java/org/zwobble/example/Transient0Tests.java b/examples/10-transient-0/output/java-junit/src/test/java/org/zwobble/example/Transient0Tests.java index 7d6f7de..e28e926 100644 --- a/examples/10-transient-0/output/java-junit/src/test/java/org/zwobble/example/Transient0Tests.java +++ b/examples/10-transient-0/output/java-junit/src/test/java/org/zwobble/example/Transient0Tests.java @@ -19,6 +19,8 @@ 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.StructWithString; +import org.zwobble.example.types.data.VariantOne; +import org.zwobble.example.types.data.VariantTwo; public class Transient0Tests { @Test @@ -143,6 +145,21 @@ public class Transient0Tests { ); } + @Test + public void sumWithVariants() throws IOException { + assertRoundTripEncoding( + new VariantOne(10), + HobgoblinTransient0Data::encodeSumWithVariants, + HobgoblinTransient0Data::decodeSumWithVariants + ); + + assertRoundTripEncoding( + new VariantTwo(25), + HobgoblinTransient0Data::encodeSumWithVariants, + HobgoblinTransient0Data::decodeSumWithVariants + ); + } + private <T> void assertRoundTripEncoding( T value, Encoder<T> encoder, diff --git a/examples/10-transient-0/src/data.hob b/examples/10-transient-0/src/data.hob index f6fa20e..e1d7290 100644 --- a/examples/10-transient-0/src/data.hob +++ b/examples/10-transient-0/src/data.hob @@ -43,3 +43,16 @@ enum EnumWithVariants { variant one; variant two; } + +sum SumWithVariants { + variant VariantOne; + variant VariantTwo; +} + +struct VariantOne { + field a: Int32; +} + +struct VariantTwo { + field a: Int64; +} |
