diff options
Diffstat (limited to 'examples/16-transient-0/output/rust/src/data.rs')
| -rw-r--r-- | examples/16-transient-0/output/rust/src/data.rs | 66 |
1 files changed, 66 insertions, 0 deletions
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<A, B> { + 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::<usize, i64>, + ) -> 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<Arc::<dyn Any + Sync + Send>>, + ) -> std::io::Result<Native> { + 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<TWrite: std::io::Write, A, B>( + value: &GenericNative<A, B>, + writer: &mut TWrite, + shared_values: &mut ::std::collections::HashMap::<usize, i64>, + encode_a: Encode<A, TWrite>, + encode_b: Encode<B, TWrite>, + ) -> std::io::Result<()> { + encode_a(&value.a, writer, shared_values)?; + encode_b(&value.b, writer, shared_values)?; + Ok(()) + } + + pub fn decode_generic_native<TRead: std::io::Read, A, B>( + reader: &mut TRead, + shared_values: &mut Vec<Arc::<dyn Any + Sync + Send>>, + decode_a: Decode<TRead, A>, + decode_b: Decode<TRead, B>, + ) -> std::io::Result<GenericNative<A, B>> { + let a = decode_a(reader, shared_values)?; + let b = decode_b(reader, shared_values)?; + Ok(GenericNative { a, b }) + } +} |
