summaryrefslogtreecommitdiff
path: root/examples/12-transient-0/output/rust/src/gen/transient_0.rs
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-07-31 10:50:10 +0100
committerMichael Williamson <mike@zwobble.org>2026-07-31 10:50:10 +0100
commit578bf1f04b48f48225cfa794a27426cca4f6384a (patch)
treefc5c2737ffa65e20305f165a593111463a36166d /examples/12-transient-0/output/rust/src/gen/transient_0.rs
parent1831d27671abe87bcbea5da40517093c37efb9b7 (diff)
Support singleton structs
Diffstat (limited to 'examples/12-transient-0/output/rust/src/gen/transient_0.rs')
-rw-r--r--examples/12-transient-0/output/rust/src/gen/transient_0.rs70
1 files changed, 70 insertions, 0 deletions
diff --git a/examples/12-transient-0/output/rust/src/gen/transient_0.rs b/examples/12-transient-0/output/rust/src/gen/transient_0.rs
new file mode 100644
index 0000000..d88284e
--- /dev/null
+++ b/examples/12-transient-0/output/rust/src/gen/transient_0.rs
@@ -0,0 +1,70 @@
+// Generated by hobgoblin.
+
+pub fn encode_bool(value: &::core::primitive::bool, writer: &mut impl std::io::Write, shared_values: &mut ::std::collections::HashMap::<::core::primitive::usize, ::core::primitive::i64>) -> ::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, shared_values: &mut ::std::vec::Vec::<::std::sync::Arc::<dyn ::std::any::Any + ::std::marker::Sync + ::std::marker::Send>>) -> ::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, shared_values: &mut ::std::collections::HashMap::<::core::primitive::usize, ::core::primitive::i64>) -> ::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, shared_values: &mut ::std::vec::Vec::<::std::sync::Arc::<dyn ::std::any::Any + ::std::marker::Sync + ::std::marker::Send>>) -> ::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, shared_values: &mut ::std::collections::HashMap::<::core::primitive::usize, ::core::primitive::i64>) -> ::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, shared_values: &mut ::std::vec::Vec::<::std::sync::Arc::<dyn ::std::any::Any + ::std::marker::Sync + ::std::marker::Send>>) -> ::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, shared_values: &mut ::std::collections::HashMap::<::core::primitive::usize, ::core::primitive::i64>) -> ::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, shared_values)?;
+ writer.write_all(value.as_bytes())?;
+ ::std::io::Result::Ok(())
+}
+
+pub fn decode_string(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::<::std::string::String> {
+ let len = crate::transient_0::decode_int_64(reader, shared_values)?;
+ 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))?)
+}