diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-07-31 10:57:39 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-07-31 10:57:39 +0100 |
| commit | 2f76934bf2aa59f78b671c722b73f0d69c7adbd3 (patch) | |
| tree | 6784f78eafe1bd2d906f410440b101b660e09077 /examples/12-transient-0/output/rust/src | |
| parent | 578bf1f04b48f48225cfa794a27426cca4f6384a (diff) | |
Handle singleton structs in Rust
Diffstat (limited to 'examples/12-transient-0/output/rust/src')
| -rw-r--r-- | examples/12-transient-0/output/rust/src/gen/data.rs | 3 | ||||
| -rw-r--r-- | examples/12-transient-0/output/rust/src/gen/data/transient_0.rs | 8 | ||||
| -rw-r--r-- | examples/12-transient-0/output/rust/src/lib.rs | 14 |
3 files changed, 24 insertions, 1 deletions
diff --git a/examples/12-transient-0/output/rust/src/gen/data.rs b/examples/12-transient-0/output/rust/src/gen/data.rs index 4ec0524..aef9f69 100644 --- a/examples/12-transient-0/output/rust/src/gen/data.rs +++ b/examples/12-transient-0/output/rust/src/gen/data.rs @@ -1,6 +1,9 @@ // Generated by hobgoblin. #[derive(Debug, Hash, PartialEq)] +pub struct StructSingleton; + +#[derive(Debug, Hash, PartialEq)] pub struct StructWithBool { pub a: ::core::primitive::bool, pub b: ::core::primitive::bool, diff --git a/examples/12-transient-0/output/rust/src/gen/data/transient_0.rs b/examples/12-transient-0/output/rust/src/gen/data/transient_0.rs index ea4a459..ca9beaf 100644 --- a/examples/12-transient-0/output/rust/src/gen/data/transient_0.rs +++ b/examples/12-transient-0/output/rust/src/gen/data/transient_0.rs @@ -1,5 +1,13 @@ // Generated by hobgoblin. +pub fn encode_struct_singleton(value: &crate::data::StructSingleton, writer: &mut impl std::io::Write, shared_values: &mut ::std::collections::HashMap::<::core::primitive::usize, ::core::primitive::i64>) -> ::std::io::Result::<()> { + ::std::io::Result::Ok(()) +} + +pub fn decode_struct_singleton(reader: &mut impl std::io::Read, shared_values: &mut ::std::vec::Vec::<::std::sync::Arc::<dyn ::std::any::Any + ::std::marker::Sync + ::std::marker::Send>>) -> ::std::io::Result::<crate::data::StructSingleton> { + ::std::io::Result::Ok(crate::data::StructSingleton) +} + pub fn encode_struct_with_bool(value: &crate::data::StructWithBool, writer: &mut impl std::io::Write, shared_values: &mut ::std::collections::HashMap::<::core::primitive::usize, ::core::primitive::i64>) -> ::std::io::Result::<()> { crate::transient_0::encode_bool(&value.a, writer, shared_values)?; crate::transient_0::encode_bool(&value.b, writer, shared_values)?; diff --git a/examples/12-transient-0/output/rust/src/lib.rs b/examples/12-transient-0/output/rust/src/lib.rs index 3a02936..365a352 100644 --- a/examples/12-transient-0/output/rust/src/lib.rs +++ b/examples/12-transient-0/output/rust/src/lib.rs @@ -8,7 +8,19 @@ mod test { use std::path::PathBuf; use std::sync::Arc; use std::collections::HashMap; - use super::data::{EnumWithVariants, StructWithBool, StructWithDifferentSharedTypes, StructWithEnum, StructWithInt32, StructWithInt64, StructWithList, StructWithListOfShared, StructWithOption, StructWithSharedSumAndVariant, StructWithString, StructWithStruct, StructWithSum, SumWithVariants, VariantOne, VariantTwo }; + use super::data::{EnumWithVariants, StructSingleton, StructWithBool, StructWithDifferentSharedTypes, StructWithEnum, StructWithInt32, StructWithInt64, StructWithList, StructWithListOfShared, StructWithOption, StructWithSharedSumAndVariant, StructWithString, StructWithStruct, StructWithSum, SumWithVariants, VariantOne, VariantTwo }; + + #[test] + fn struct_singleton() { + let value = StructSingleton; + + assert_round_trip_encoding( + "StructSingleton", + value, + super::data::transient_0::encode_struct_singleton, + super::data::transient_0::decode_struct_singleton, + ); + } #[test] fn struct_with_bool() { |
