#![cfg(feature = "test")] use musli::{Decode, Encode}; #[derive(Debug, PartialEq, Encode, Decode)] #[musli(name_type = usize)] pub struct Struct { field1: u32, field2: u32, field3: u32, field4: u32, } #[derive(Debug, PartialEq, Encode, Decode)] #[musli(name_type = usize)] pub struct StructPattern { field1: u32, #[musli(pattern = 1..=2)] field2: u32, #[musli(name = 3)] field4: u32, } #[test] fn struct_pattern() { musli::macros::assert_decode_eq!( upgrade_stable, Struct { field1: 0, field2: 1, field3: 2, field4: 3 }, StructPattern { field1: 0, field2: 2, field4: 3 } ); } #[derive(Debug, PartialEq, Encode, Decode)] #[musli(name_type = usize)] pub struct StructRename { #[musli(name = 3)] field4: u32, } #[test] fn struct_rename() { musli::macros::assert_decode_eq!( upgrade_stable, Struct { field1: 11, field2: 13, field3: 15, field4: 17, }, StructRename { field4: 17 }, json = r#"{"0":11,"1":13,"2":15,"3":17}"#, ); }