summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/10-transient-0/output/rust/src/gen/transient_0.rs9
-rw-r--r--examples/10-transient-0/output/rust/src/lib.rs11
2 files changed, 18 insertions, 2 deletions
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<T: std::cmp::PartialEq + std::fmt::Debug>(
value: T,
encode: impl Fn(&T, &mut Cursor<Vec<u8>>),