summaryrefslogtreecommitdiff
path: root/examples/10-transient-0/output
diff options
context:
space:
mode:
Diffstat (limited to 'examples/10-transient-0/output')
-rw-r--r--examples/10-transient-0/output/rust/src/gen/transient_0.rs20
-rw-r--r--examples/10-transient-0/output/rust/src/lib.rs13
2 files changed, 30 insertions, 3 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 024ad03..68aa0eb 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
@@ -1,12 +1,28 @@
// Generated by hobgoblin.
pub fn encode_bool(value: &::core::primitive::bool, writer: &mut impl std::io::Write) -> ::std::io::Result::<()> {
- todo!();
+ 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) -> ::std::io::Result::<::core::primitive::bool> {
- std::io::Result::Ok(todo!())
+ 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) -> ::std::io::Result::<()> {
diff --git a/examples/10-transient-0/output/rust/src/lib.rs b/examples/10-transient-0/output/rust/src/lib.rs
index 80fa64f..75a7b47 100644
--- a/examples/10-transient-0/output/rust/src/lib.rs
+++ b/examples/10-transient-0/output/rust/src/lib.rs
@@ -4,7 +4,18 @@ pub mod transient_0;
#[cfg(test)]
mod test {
use std::io::Cursor;
- use super::data::{InnerStruct, OuterStruct, StructWithInt32, StructWithInt64};
+ use super::data::{InnerStruct, OuterStruct, StructWithBool, StructWithInt32, StructWithInt64};
+
+ #[test]
+ fn struct_with_bool() {
+ let value = StructWithBool { a: true, b: false };
+
+ assert_round_trip_encoding(
+ value,
+ super::data::transient_0::encode_struct_with_bool,
+ super::data::transient_0::decode_struct_with_bool,
+ );
+ }
#[test]
fn struct_with_int_32() {