From db10b42d361f0ff73a88d34dad1165a736d12024 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 17 Jul 2026 10:44:40 +0100 Subject: Support Int64 in rust-transient-0 --- examples/10-transient-0/output/rust/src/gen/transient_0.rs | 9 +++++++-- examples/10-transient-0/output/rust/src/lib.rs | 11 +++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) (limited to 'examples/10-transient-0/output/rust') 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 index 63b2367..ad47d30 100644 --- a/examples/10-transient-0/output/rust/src/gen/transient_0.rs +++ b/examples/10-transient-0/output/rust/src/gen/transient_0.rs @@ -22,11 +22,16 @@ pub fn decode_int_32(reader: &mut impl std::io::Read) -> ::core::primitive::i32 } pub fn encode_int_64(value: &::core::primitive::i64, writer: &mut impl std::io::Write) { - todo!(); + writer.write_all(&value.to_le_bytes()); } pub fn decode_int_64(reader: &mut impl std::io::Read) -> ::core::primitive::i64 { - todo!() + let bytes = { + let mut bytes = [0; 8]; + reader.read_exact(&mut bytes); + bytes + }; + ::core::primitive::i64::from_le_bytes(bytes) } pub fn encode_string(value: &::std::string::String, writer: &mut impl std::io::Write) { diff --git a/examples/10-transient-0/output/rust/src/lib.rs b/examples/10-transient-0/output/rust/src/lib.rs index 56be8ca..9b53c0e 100644 --- a/examples/10-transient-0/output/rust/src/lib.rs +++ b/examples/10-transient-0/output/rust/src/lib.rs @@ -18,6 +18,17 @@ mod test { ); } + #[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, + ); + } + fn assert_round_trip_encoding( value: T, encode: impl Fn(&T, &mut Cursor>), -- cgit v1.2.3