From 5113f2157c5aa257ad7ebf555cb6a551701d169a Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 10 Aug 2026 10:19:49 +0100 Subject: Add generic struct example without any outputs --- examples/16-transient-0/output/rust/src/data.rs | 66 +++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 examples/16-transient-0/output/rust/src/data.rs (limited to 'examples/16-transient-0/output/rust/src/data.rs') diff --git a/examples/16-transient-0/output/rust/src/data.rs b/examples/16-transient-0/output/rust/src/data.rs new file mode 100644 index 0000000..2b890c2 --- /dev/null +++ b/examples/16-transient-0/output/rust/src/data.rs @@ -0,0 +1,66 @@ +include!("./gen/data.rs"); + +#[derive(Clone, Debug, Hash, PartialEq)] +pub struct Native { + pub a: i32, + pub b: i32, +} + +#[derive(Clone, Debug, Hash, PartialEq)] +pub struct GenericNative { + pub a: A, + pub b: B, +} + + +pub mod transient_0 { + use ::std::any::Any; + use ::std::sync::Arc; + use ::std::vec::Vec; + use crate::transient_0::{Decode, Encode}; + use super::{GenericNative, Native}; + + include!("./gen/data/transient_0.rs"); + + pub fn encode_native( + value: &Native, + writer: &mut impl std::io::Write, + shared_values: &mut ::std::collections::HashMap::, + ) -> std::io::Result<()> { + crate::transient_0::encode_int_32(&value.a, writer, shared_values)?; + crate::transient_0::encode_int_32(&value.b, writer, shared_values)?; + Ok(()) + } + + pub fn decode_native( + reader: &mut impl std::io::Read, + shared_values: &mut Vec>, + ) -> std::io::Result { + let a = crate::transient_0::decode_int_32(reader, shared_values)?; + let b = crate::transient_0::decode_int_32(reader, shared_values)?; + Ok(Native { a, b }) + } + + pub fn encode_generic_native( + value: &GenericNative, + writer: &mut TWrite, + shared_values: &mut ::std::collections::HashMap::, + encode_a: Encode, + encode_b: Encode, + ) -> std::io::Result<()> { + encode_a(&value.a, writer, shared_values)?; + encode_b(&value.b, writer, shared_values)?; + Ok(()) + } + + pub fn decode_generic_native( + reader: &mut TRead, + shared_values: &mut Vec>, + decode_a: Decode, + decode_b: Decode, + ) -> std::io::Result> { + let a = decode_a(reader, shared_values)?; + let b = decode_b(reader, shared_values)?; + Ok(GenericNative { a, b }) + } +} -- cgit v1.2.3