diff options
Diffstat (limited to 'examples/11-transient-0/output')
| -rw-r--r-- | examples/11-transient-0/output/rust/.gitignore | 1 | ||||
| -rw-r--r-- | examples/11-transient-0/output/rust/src/lib.rs | 26 |
2 files changed, 27 insertions, 0 deletions
diff --git a/examples/11-transient-0/output/rust/.gitignore b/examples/11-transient-0/output/rust/.gitignore index ea8c4bf..fc03479 100644 --- a/examples/11-transient-0/output/rust/.gitignore +++ b/examples/11-transient-0/output/rust/.gitignore @@ -1 +1,2 @@ /target +/transient-0/ diff --git a/examples/11-transient-0/output/rust/src/lib.rs b/examples/11-transient-0/output/rust/src/lib.rs index 63a2799..3a02936 100644 --- a/examples/11-transient-0/output/rust/src/lib.rs +++ b/examples/11-transient-0/output/rust/src/lib.rs @@ -5,6 +5,7 @@ pub mod transient_0; mod test { use std::any::Any; use std::io::Cursor; + use std::path::PathBuf; use std::sync::Arc; use std::collections::HashMap; use super::data::{EnumWithVariants, StructWithBool, StructWithDifferentSharedTypes, StructWithEnum, StructWithInt32, StructWithInt64, StructWithList, StructWithListOfShared, StructWithOption, StructWithSharedSumAndVariant, StructWithString, StructWithStruct, StructWithSum, SumWithVariants, VariantOne, VariantTwo }; @@ -14,6 +15,7 @@ mod test { let value = StructWithBool { a: true, b: false }; assert_round_trip_encoding( + "StructWithBool", value, super::data::transient_0::encode_struct_with_bool, super::data::transient_0::decode_struct_with_bool, @@ -25,6 +27,7 @@ mod test { let value = StructWithInt32 { a: 10, b: 25 }; assert_round_trip_encoding( + "StructWithInt32", value, super::data::transient_0::encode_struct_with_int_32, super::data::transient_0::decode_struct_with_int_32, @@ -36,6 +39,7 @@ mod test { let value = StructWithInt64 { a: 10, b: 25 }; assert_round_trip_encoding( + "StructWithInt64", value, super::data::transient_0::encode_struct_with_int_64, super::data::transient_0::decode_struct_with_int_64, @@ -47,6 +51,7 @@ mod test { let value = StructWithString { a: "abc".to_string(), b: "def".to_string() }; assert_round_trip_encoding( + "StructWithString", value, super::data::transient_0::encode_struct_with_string, super::data::transient_0::decode_struct_with_string, @@ -58,6 +63,7 @@ mod test { let value = StructWithStruct { inner: StructWithInt32 { a: 10, b: 25 }, c: 42 }; assert_round_trip_encoding( + "StructWithStruct", value, super::data::transient_0::encode_struct_with_struct, super::data::transient_0::decode_struct_with_struct, @@ -76,6 +82,7 @@ mod test { }; assert_round_trip_encoding( + "StructWithList", value, super::data::transient_0::encode_struct_with_list, super::data::transient_0::decode_struct_with_list, @@ -90,6 +97,7 @@ mod test { }; assert_round_trip_encoding( + "StructWithOption_None", value, super::data::transient_0::encode_struct_with_option, super::data::transient_0::decode_struct_with_option, @@ -104,6 +112,7 @@ mod test { }; assert_round_trip_encoding( + "StructWithOption_Some", value, super::data::transient_0::encode_struct_with_option, super::data::transient_0::decode_struct_with_option, @@ -113,18 +122,21 @@ mod test { #[test] fn enum_with_variants() { assert_round_trip_encoding( + "EnumWithVariants_zero", EnumWithVariants::Zero, super::data::transient_0::encode_enum_with_variants, super::data::transient_0::decode_enum_with_variants, ); assert_round_trip_encoding( + "EnumWithVariants_one", EnumWithVariants::One, super::data::transient_0::encode_enum_with_variants, super::data::transient_0::decode_enum_with_variants, ); assert_round_trip_encoding( + "EnumWithVariants_two", EnumWithVariants::Two, super::data::transient_0::encode_enum_with_variants, super::data::transient_0::decode_enum_with_variants, @@ -136,6 +148,7 @@ mod test { let value = StructWithEnum { inner: EnumWithVariants::One, c: 42 }; assert_round_trip_encoding( + "StructWithEnum", value, super::data::transient_0::encode_struct_with_enum, super::data::transient_0::decode_struct_with_enum, @@ -145,12 +158,14 @@ mod test { #[test] fn sum_with_variants() { assert_round_trip_encoding( + "SumWithVariants_VariantOne", SumWithVariants::VariantOne(VariantOne { a: 10 }), super::data::transient_0::encode_sum_with_variants, super::data::transient_0::decode_sum_with_variants, ); assert_round_trip_encoding( + "SumWithVariants_VariantTwo", SumWithVariants::VariantTwo(VariantTwo { a: 25 }), super::data::transient_0::encode_sum_with_variants, super::data::transient_0::decode_sum_with_variants, @@ -165,6 +180,7 @@ mod test { }; assert_round_trip_encoding( + "StructWithSum", value, super::data::transient_0::encode_struct_with_sum, super::data::transient_0::decode_struct_with_sum, @@ -181,6 +197,7 @@ mod test { }; let decoded_value = assert_round_trip_encoding( + "StructWithListOfShared", value, super::data::transient_0::encode_struct_with_list_of_shared, super::data::transient_0::decode_struct_with_list_of_shared, @@ -199,6 +216,7 @@ mod test { let value = StructWithDifferentSharedTypes { a, b, c }; assert_round_trip_encoding( + "StructWithDifferentSharedTypes", value, super::data::transient_0::encode_struct_with_different_shared_types, super::data::transient_0::decode_struct_with_different_shared_types, @@ -213,6 +231,7 @@ mod test { let value = StructWithSharedSumAndVariant { a, b }; assert_round_trip_encoding( + "StructWithSharedSumAndVariant", value, super::data::transient_0::encode_struct_with_shared_sum_and_variant, super::data::transient_0::decode_struct_with_shared_sum_and_variant, @@ -220,6 +239,7 @@ mod test { } fn assert_round_trip_encoding<T: std::cmp::PartialEq + std::fmt::Debug>( + name: &str, value: T, encode: impl Fn(&T, &mut Cursor<Vec<u8>>, &mut HashMap<usize, i64>) -> std::io::Result<()>, decode: impl Fn(&mut Cursor<Vec<u8>>, &mut Vec<Arc<dyn Any + Sync + Send>>) -> std::io::Result<T>, @@ -227,6 +247,12 @@ mod test { let mut bytes = Cursor::new(Vec::new()); encode(&value, &mut bytes, &mut HashMap::new()).unwrap(); + let output_dir = std::env::var("HOBGOBLIN_OUTPUT_DIR").unwrap(); + let transient_0_output_dir = PathBuf::from(output_dir).join("transient-0"); + std::fs::create_dir_all(&transient_0_output_dir).unwrap(); + let transient_0_output_path = transient_0_output_dir.join(name); + std::fs::write(transient_0_output_path, bytes.get_ref()).unwrap(); + bytes.set_position(0); let decoded_value = decode(&mut bytes, &mut Vec::new()).unwrap(); |
