diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-07-24 17:59:45 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-07-24 17:59:45 +0100 |
| commit | 2bc23bdc7fe01fc5921be8e09f405a8a1fd7bd65 (patch) | |
| tree | 9df07f8aeba21f4fb91e23fcc8d1c7a4a57a42eb /examples/10-transient-0/output/rust/src | |
| parent | c8baf035c5a1705b957931f56f9162125803e554 (diff) | |
Add Shared type
Diffstat (limited to 'examples/10-transient-0/output/rust/src')
6 files changed, 0 insertions, 573 deletions
diff --git a/examples/10-transient-0/output/rust/src/data.rs b/examples/10-transient-0/output/rust/src/data.rs deleted file mode 100644 index 7a0c4fa..0000000 --- a/examples/10-transient-0/output/rust/src/data.rs +++ /dev/null @@ -1,5 +0,0 @@ -include!("./gen/data.rs"); - -pub mod transient_0 { - include!("./gen/data/transient_0.rs"); -} diff --git a/examples/10-transient-0/output/rust/src/gen/data.rs b/examples/10-transient-0/output/rust/src/gen/data.rs deleted file mode 100644 index 0ea6c0f..0000000 --- a/examples/10-transient-0/output/rust/src/gen/data.rs +++ /dev/null @@ -1,90 +0,0 @@ -// Generated by hobgoblin. - -#[derive(Debug, PartialEq)] -pub struct StructWithBool { - pub a: ::core::primitive::bool, - pub b: ::core::primitive::bool, -} - -#[derive(Debug, PartialEq)] -pub struct StructWithInt32 { - pub a: ::core::primitive::i32, - pub b: ::core::primitive::i32, -} - -#[derive(Debug, PartialEq)] -pub struct StructWithInt64 { - pub a: ::core::primitive::i64, - pub b: ::core::primitive::i64, -} - -#[derive(Debug, PartialEq)] -pub struct StructWithString { - pub a: ::std::string::String, - pub b: ::std::string::String, -} - -#[derive(Debug, PartialEq)] -pub struct StructWithStruct { - pub inner: crate::data::StructWithInt32, - pub c: ::core::primitive::i32, -} - -#[derive(Debug, PartialEq)] -pub struct StructWithList { - pub a: ::std::vec::Vec::<::core::primitive::i64>, - pub b: ::std::vec::Vec::<crate::data::StructWithInt32>, -} - -#[derive(Debug, PartialEq)] -pub struct StructWithOption { - pub a: ::std::option::Option::<::core::primitive::i64>, - pub b: ::std::option::Option::<crate::data::StructWithInt32>, -} - -#[derive(Debug, PartialEq)] -pub enum EnumWithVariants { - Zero, - One, - Two, -} - -#[derive(Debug, PartialEq)] -pub struct StructWithEnum { - pub inner: crate::data::EnumWithVariants, - pub c: ::core::primitive::i32, -} - -#[derive(Debug, PartialEq)] -pub enum SumWithVariants { - VariantOne(crate::data::VariantOne), - VariantTwo(crate::data::VariantTwo), -} - -impl ::std::convert::From::<crate::data::VariantOne> for crate::data::SumWithVariants { - fn from(value: crate::data::VariantOne) -> Self { - Self::VariantOne(value) - } -} - -impl ::std::convert::From::<crate::data::VariantTwo> for crate::data::SumWithVariants { - fn from(value: crate::data::VariantTwo) -> Self { - Self::VariantTwo(value) - } -} - -#[derive(Debug, PartialEq)] -pub struct VariantOne { - pub a: ::core::primitive::i32, -} - -#[derive(Debug, PartialEq)] -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 deleted file mode 100644 index 82fb5f7..0000000 --- a/examples/10-transient-0/output/rust/src/gen/data/transient_0.rs +++ /dev/null @@ -1,223 +0,0 @@ -// Generated by hobgoblin. - -pub fn encode_struct_with_bool(value: &crate::data::StructWithBool, writer: &mut impl std::io::Write) -> ::std::io::Result::<()> { - crate::transient_0::encode_bool(&value.a, writer)?; - crate::transient_0::encode_bool(&value.b, writer)?; - ::std::io::Result::Ok(()) -} - -pub fn decode_struct_with_bool(reader: &mut impl std::io::Read) -> ::std::io::Result::<crate::data::StructWithBool> { - let a = crate::transient_0::decode_bool(reader)?; - let b = crate::transient_0::decode_bool(reader)?; - std::io::Result::Ok(crate::data::StructWithBool { a: a, b: b }) -} - -pub fn encode_struct_with_int_32(value: &crate::data::StructWithInt32, writer: &mut impl std::io::Write) -> ::std::io::Result::<()> { - crate::transient_0::encode_int_32(&value.a, writer)?; - crate::transient_0::encode_int_32(&value.b, writer)?; - ::std::io::Result::Ok(()) -} - -pub fn decode_struct_with_int_32(reader: &mut impl std::io::Read) -> ::std::io::Result::<crate::data::StructWithInt32> { - let a = crate::transient_0::decode_int_32(reader)?; - let b = crate::transient_0::decode_int_32(reader)?; - std::io::Result::Ok(crate::data::StructWithInt32 { a: a, b: b }) -} - -pub fn encode_struct_with_int_64(value: &crate::data::StructWithInt64, writer: &mut impl std::io::Write) -> ::std::io::Result::<()> { - crate::transient_0::encode_int_64(&value.a, writer)?; - crate::transient_0::encode_int_64(&value.b, writer)?; - ::std::io::Result::Ok(()) -} - -pub fn decode_struct_with_int_64(reader: &mut impl std::io::Read) -> ::std::io::Result::<crate::data::StructWithInt64> { - let a = crate::transient_0::decode_int_64(reader)?; - let b = crate::transient_0::decode_int_64(reader)?; - std::io::Result::Ok(crate::data::StructWithInt64 { a: a, b: b }) -} - -pub fn encode_struct_with_string(value: &crate::data::StructWithString, writer: &mut impl std::io::Write) -> ::std::io::Result::<()> { - crate::transient_0::encode_string(&value.a, writer)?; - crate::transient_0::encode_string(&value.b, writer)?; - ::std::io::Result::Ok(()) -} - -pub fn decode_struct_with_string(reader: &mut impl std::io::Read) -> ::std::io::Result::<crate::data::StructWithString> { - let a = crate::transient_0::decode_string(reader)?; - let b = crate::transient_0::decode_string(reader)?; - std::io::Result::Ok(crate::data::StructWithString { a: a, b: b }) -} - -pub fn encode_struct_with_struct(value: &crate::data::StructWithStruct, writer: &mut impl std::io::Write) -> ::std::io::Result::<()> { - crate::data::transient_0::encode_struct_with_int_32(&value.inner, writer)?; - crate::transient_0::encode_int_32(&value.c, writer)?; - ::std::io::Result::Ok(()) -} - -pub fn decode_struct_with_struct(reader: &mut impl std::io::Read) -> ::std::io::Result::<crate::data::StructWithStruct> { - let inner = crate::data::transient_0::decode_struct_with_int_32(reader)?; - let c = crate::transient_0::decode_int_32(reader)?; - std::io::Result::Ok(crate::data::StructWithStruct { inner: inner, c: c }) -} - -pub fn encode_struct_with_list(value: &crate::data::StructWithList, writer: &mut impl std::io::Write) -> ::std::io::Result::<()> { - { - crate::transient_0::encode_int_64(&(((&value.a).len()).try_into()).map_err(|error| ::std::io::Error::new(::std::io::ErrorKind::InvalidData, error))?, writer)?; - for element in &value.a { - crate::transient_0::encode_int_64(element, writer)?; - }; - }; - { - crate::transient_0::encode_int_64(&(((&value.b).len()).try_into()).map_err(|error| ::std::io::Error::new(::std::io::ErrorKind::InvalidData, error))?, writer)?; - for element in &value.b { - crate::data::transient_0::encode_struct_with_int_32(element, writer)?; - }; - }; - ::std::io::Result::Ok(()) -} - -pub fn decode_struct_with_list(reader: &mut impl std::io::Read) -> ::std::io::Result::<crate::data::StructWithList> { - let a = { - let len = crate::transient_0::decode_int_64(reader)?; - let mut elements = ::std::vec::Vec::with_capacity((len.try_into()).map_err(|error| ::std::io::Error::new(::std::io::ErrorKind::InvalidData, error))?); - for _ in 0..len { - elements.push(crate::transient_0::decode_int_64(reader)?); - }; - elements - }; - let b = { - let len = crate::transient_0::decode_int_64(reader)?; - let mut elements = ::std::vec::Vec::with_capacity((len.try_into()).map_err(|error| ::std::io::Error::new(::std::io::ErrorKind::InvalidData, error))?); - for _ in 0..len { - elements.push(crate::data::transient_0::decode_struct_with_int_32(reader)?); - }; - elements - }; - std::io::Result::Ok(crate::data::StructWithList { a: a, b: b }) -} - -pub fn encode_struct_with_option(value: &crate::data::StructWithOption, writer: &mut impl std::io::Write) -> ::std::io::Result::<()> { - match &value.a { - ::std::option::Option::Some(value) => { - crate::transient_0::encode_bool(&true, writer)?; - crate::transient_0::encode_int_64(&value, writer)?; - }, - ::std::option::Option::None => { - crate::transient_0::encode_bool(&false, writer)?; - }, - }; - match &value.b { - ::std::option::Option::Some(value) => { - crate::transient_0::encode_bool(&true, writer)?; - crate::data::transient_0::encode_struct_with_int_32(&value, writer)?; - }, - ::std::option::Option::None => { - crate::transient_0::encode_bool(&false, writer)?; - }, - }; - ::std::io::Result::Ok(()) -} - -pub fn decode_struct_with_option(reader: &mut impl std::io::Read) -> ::std::io::Result::<crate::data::StructWithOption> { - let a = { - let is_some = crate::transient_0::decode_bool(reader)?; - if is_some { - ::std::option::Option::Some(crate::transient_0::decode_int_64(reader)?) - } else { - ::std::option::Option::None - } - }; - let b = { - let is_some = crate::transient_0::decode_bool(reader)?; - if is_some { - ::std::option::Option::Some(crate::data::transient_0::decode_struct_with_int_32(reader)?) - } else { - ::std::option::Option::None - } - }; - std::io::Result::Ok(crate::data::StructWithOption { a: a, b: b }) -} - -pub fn encode_enum_with_variants(value: &crate::data::EnumWithVariants, writer: &mut impl std::io::Write) -> ::std::io::Result::<()> { - crate::transient_0::encode_int_32(&match value { - crate::data::EnumWithVariants::Zero => 0, - crate::data::EnumWithVariants::One => 1, - crate::data::EnumWithVariants::Two => 2, - }, writer)?; - ::std::io::Result::Ok(()) -} - -pub fn decode_enum_with_variants(reader: &mut impl std::io::Read) -> ::std::io::Result::<crate::data::EnumWithVariants> { - std::io::Result::Ok(match &crate::transient_0::decode_int_32(reader)? { - 0 => crate::data::EnumWithVariants::Zero, - 1 => crate::data::EnumWithVariants::One, - 2 => crate::data::EnumWithVariants::Two, - _ => todo!(), - }) -} - -pub fn encode_struct_with_enum(value: &crate::data::StructWithEnum, writer: &mut impl std::io::Write) -> ::std::io::Result::<()> { - crate::data::transient_0::encode_enum_with_variants(&value.inner, writer)?; - crate::transient_0::encode_int_32(&value.c, writer)?; - ::std::io::Result::Ok(()) -} - -pub fn decode_struct_with_enum(reader: &mut impl std::io::Read) -> ::std::io::Result::<crate::data::StructWithEnum> { - let inner = crate::data::transient_0::decode_enum_with_variants(reader)?; - let c = crate::transient_0::decode_int_32(reader)?; - std::io::Result::Ok(crate::data::StructWithEnum { inner: inner, c: c }) -} - -pub fn encode_sum_with_variants(value: &crate::data::SumWithVariants, writer: &mut impl std::io::Write) -> ::std::io::Result::<()> { - match value { - crate::data::SumWithVariants::VariantOne(value) => { - crate::transient_0::encode_int_32(&0, writer)?; - crate::data::transient_0::encode_variant_one(value, writer)?; - }, - crate::data::SumWithVariants::VariantTwo(value) => { - crate::transient_0::encode_int_32(&1, writer)?; - crate::data::transient_0::encode_variant_two(value, writer)?; - }, - }; - ::std::io::Result::Ok(()) -} - -pub fn decode_sum_with_variants(reader: &mut impl std::io::Read) -> ::std::io::Result::<crate::data::SumWithVariants> { - std::io::Result::Ok(match &crate::transient_0::decode_int_32(reader)? { - 0 => crate::data::SumWithVariants::VariantOne(crate::data::transient_0::decode_variant_one(reader)?), - 1 => crate::data::SumWithVariants::VariantTwo(crate::data::transient_0::decode_variant_two(reader)?), - _ => todo!(), - }) -} - -pub fn encode_variant_one(value: &crate::data::VariantOne, writer: &mut impl std::io::Write) -> ::std::io::Result::<()> { - crate::transient_0::encode_int_32(&value.a, writer)?; - ::std::io::Result::Ok(()) -} - -pub fn decode_variant_one(reader: &mut impl std::io::Read) -> ::std::io::Result::<crate::data::VariantOne> { - let a = crate::transient_0::decode_int_32(reader)?; - std::io::Result::Ok(crate::data::VariantOne { a: a }) -} - -pub fn encode_variant_two(value: &crate::data::VariantTwo, writer: &mut impl std::io::Write) -> ::std::io::Result::<()> { - crate::transient_0::encode_int_64(&value.a, writer)?; - ::std::io::Result::Ok(()) -} - -pub fn decode_variant_two(reader: &mut impl std::io::Read) -> ::std::io::Result::<crate::data::VariantTwo> { - 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::<()> { - crate::data::transient_0::encode_sum_with_variants(&value.inner, writer)?; - 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 = crate::data::transient_0::decode_sum_with_variants(reader)?; - let b = crate::transient_0::decode_int_32(reader)?; - std::io::Result::Ok(crate::data::StructWithSum { inner: inner, b: b }) -} diff --git a/examples/10-transient-0/output/rust/src/gen/transient_0.rs b/examples/10-transient-0/output/rust/src/gen/transient_0.rs deleted file mode 100644 index 560fe51..0000000 --- a/examples/10-transient-0/output/rust/src/gen/transient_0.rs +++ /dev/null @@ -1,70 +0,0 @@ -// Generated by hobgoblin. - -pub fn encode_bool(value: &::core::primitive::bool, writer: &mut impl std::io::Write) -> ::std::io::Result::<()> { - if *value { - writer.write_all(&1u8.to_le_bytes())?; - } else { - writer.write_all(&0u8.to_le_bytes())?; - }; - ::std::io::Result::Ok(()) -} - -pub fn decode_bool(reader: &mut impl std::io::Read) -> ::std::io::Result::<::core::primitive::bool> { - let int_value = { - let bytes = { - let mut bytes = [0; 1]; - reader.read_exact(&mut bytes)?; - bytes - }; - u8::from_le_bytes(bytes) - }; - std::io::Result::Ok(if int_value == 0 { - false - } else { - true - }) -} - -pub fn encode_int_32(value: &::core::primitive::i32, writer: &mut impl std::io::Write) -> ::std::io::Result::<()> { - writer.write_all(&value.to_le_bytes())?; - ::std::io::Result::Ok(()) -} - -pub fn decode_int_32(reader: &mut impl std::io::Read) -> ::std::io::Result::<::core::primitive::i32> { - let bytes = { - let mut bytes = [0; 4]; - reader.read_exact(&mut bytes)?; - bytes - }; - std::io::Result::Ok(::core::primitive::i32::from_le_bytes(bytes)) -} - -pub fn encode_int_64(value: &::core::primitive::i64, writer: &mut impl std::io::Write) -> ::std::io::Result::<()> { - writer.write_all(&value.to_le_bytes())?; - ::std::io::Result::Ok(()) -} - -pub fn decode_int_64(reader: &mut impl std::io::Read) -> ::std::io::Result::<::core::primitive::i64> { - let bytes = { - let mut bytes = [0; 8]; - reader.read_exact(&mut bytes)?; - bytes - }; - std::io::Result::Ok(::core::primitive::i64::from_le_bytes(bytes)) -} - -pub fn encode_string(value: &::std::string::String, writer: &mut impl std::io::Write) -> ::std::io::Result::<()> { - crate::transient_0::encode_int_64(&((value.len()).try_into()).map_err(|error| ::std::io::Error::new(::std::io::ErrorKind::InvalidData, error))?, writer)?; - writer.write_all(value.as_bytes())?; - ::std::io::Result::Ok(()) -} - -pub fn decode_string(reader: &mut impl std::io::Read) -> ::std::io::Result::<::std::string::String> { - let len = crate::transient_0::decode_int_64(reader)?; - let bytes = { - let mut bytes = vec![0u8; (len.try_into()).map_err(|error| ::std::io::Error::new(::std::io::ErrorKind::InvalidData, error))?]; - reader.read_exact(&mut bytes)?; - bytes - }; - std::io::Result::Ok((::std::string::String::from_utf8(bytes)).map_err(|error| ::std::io::Error::new(::std::io::ErrorKind::InvalidData, error))?) -} diff --git a/examples/10-transient-0/output/rust/src/lib.rs b/examples/10-transient-0/output/rust/src/lib.rs deleted file mode 100644 index e31e1fb..0000000 --- a/examples/10-transient-0/output/rust/src/lib.rs +++ /dev/null @@ -1,184 +0,0 @@ -pub mod data; -pub mod transient_0; - -#[cfg(test)] -mod test { - use std::io::Cursor; - use super::data::{EnumWithVariants, StructWithBool, StructWithEnum, StructWithInt32, StructWithInt64, StructWithList, StructWithOption, StructWithString, StructWithStruct, StructWithSum, SumWithVariants, VariantOne, VariantTwo }; - - #[test] - fn struct_with_bool() { - let value = StructWithBool { a: true, b: false }; - - assert_round_trip_encoding( - value, - super::data::transient_0::encode_struct_with_bool, - super::data::transient_0::decode_struct_with_bool, - ); - } - - #[test] - fn struct_with_int_32() { - let value = StructWithInt32 { a: 10, b: 25 }; - - assert_round_trip_encoding( - value, - super::data::transient_0::encode_struct_with_int_32, - super::data::transient_0::decode_struct_with_int_32, - ); - } - - #[test] - fn struct_with_int_64() { - let value = StructWithInt64 { a: 10, b: 25 }; - - assert_round_trip_encoding( - value, - super::data::transient_0::encode_struct_with_int_64, - super::data::transient_0::decode_struct_with_int_64, - ); - } - - #[test] - fn struct_with_string() { - let value = StructWithString { a: "abc".to_string(), b: "def".to_string() }; - - assert_round_trip_encoding( - value, - super::data::transient_0::encode_struct_with_string, - super::data::transient_0::decode_struct_with_string, - ); - } - - #[test] - fn struct_with_struct() { - let value = StructWithStruct { inner: StructWithInt32 { a: 10, b: 25 }, c: 42 }; - - assert_round_trip_encoding( - value, - super::data::transient_0::encode_struct_with_struct, - super::data::transient_0::decode_struct_with_struct, - ); - } - - #[test] - fn struct_with_list() { - let value = StructWithList { - a: vec![10, 25], - b: vec![ - StructWithInt32 { a: 42, b: 47 }, - StructWithInt32 { a: 52, b: 57 }, - StructWithInt32 { a: 62, b: 67 }, - ], - }; - - assert_round_trip_encoding( - value, - super::data::transient_0::encode_struct_with_list, - super::data::transient_0::decode_struct_with_list, - ); - } - - #[test] - fn struct_with_option_none() { - let value = StructWithOption { - a: None, - b: None, - }; - - assert_round_trip_encoding( - value, - super::data::transient_0::encode_struct_with_option, - super::data::transient_0::decode_struct_with_option, - ); - } - - #[test] - fn struct_with_option_some() { - let value = StructWithOption { - a: Some(10), - b: Some(StructWithInt32 { a: 42, b: 47 }), - }; - - assert_round_trip_encoding( - value, - super::data::transient_0::encode_struct_with_option, - super::data::transient_0::decode_struct_with_option, - ); - } - - #[test] - fn enum_with_variants() { - assert_round_trip_encoding( - EnumWithVariants::Zero, - super::data::transient_0::encode_enum_with_variants, - super::data::transient_0::decode_enum_with_variants, - ); - - assert_round_trip_encoding( - EnumWithVariants::One, - super::data::transient_0::encode_enum_with_variants, - super::data::transient_0::decode_enum_with_variants, - ); - - assert_round_trip_encoding( - EnumWithVariants::Two, - super::data::transient_0::encode_enum_with_variants, - super::data::transient_0::decode_enum_with_variants, - ); - } - - #[test] - fn struct_with_enum() { - let value = StructWithEnum { inner: EnumWithVariants::One, c: 42 }; - - assert_round_trip_encoding( - value, - super::data::transient_0::encode_struct_with_enum, - super::data::transient_0::decode_struct_with_enum, - ); - } - - #[test] - fn sum_with_variants() { - assert_round_trip_encoding( - SumWithVariants::VariantOne(VariantOne { a: 10 }), - super::data::transient_0::encode_sum_with_variants, - super::data::transient_0::decode_sum_with_variants, - ); - - assert_round_trip_encoding( - SumWithVariants::VariantTwo(VariantTwo { a: 25 }), - super::data::transient_0::encode_sum_with_variants, - super::data::transient_0::decode_sum_with_variants, - ); - } - - #[test] - fn struct_with_sum() { - let value = StructWithSum { - inner: SumWithVariants::VariantTwo(VariantTwo { a: 25 }), - b: 42, - }; - - assert_round_trip_encoding( - value, - super::data::transient_0::encode_struct_with_sum, - super::data::transient_0::decode_struct_with_sum, - ); - } - - fn assert_round_trip_encoding<T: std::cmp::PartialEq + std::fmt::Debug>( - value: T, - encode: impl Fn(&T, &mut Cursor<Vec<u8>>) -> std::io::Result<()>, - decode: impl Fn(&mut Cursor<Vec<u8>>) -> std::io::Result<T>, - ) { - let mut bytes = Cursor::new(Vec::new()); - encode(&value, &mut bytes).unwrap(); - - bytes.set_position(0); - let decoded_value = decode(&mut bytes).unwrap(); - - assert_eq!(value, decoded_value); - } -} diff --git a/examples/10-transient-0/output/rust/src/transient_0.rs b/examples/10-transient-0/output/rust/src/transient_0.rs deleted file mode 100644 index 8b2b800..0000000 --- a/examples/10-transient-0/output/rust/src/transient_0.rs +++ /dev/null @@ -1 +0,0 @@ -include!("./gen/transient_0.rs"); |
