#![cfg(feature = "test")]
use musli::compat::Sequence;
use musli::{Decode, Encode};
#[derive(Debug, PartialEq, Encode, Decode)]
pub struct Primitives {
pub bool_field: bool,
pub char_field: char,
pub u8_field: u8,
pub u16_field: u16,
pub u32_field: u32,
pub u64_field: u64,
pub u128_field: u128,
pub i8_field: i8,
pub i16_field: i16,
pub i32_field: i32,
pub i64_field: i64,
pub i128_field: i128,
pub f32_field: f32,
pub f64_field: f64,
pub usize_field: usize,
pub isize_field: isize,
pub empty_tuple: (),
}
#[test]
fn primitives() {
musli::macros::assert_roundtrip_eq!(
full,
Primitives {
bool_field: true,
char_field: char::MAX,
u8_field: u8::MAX,
u16_field: u16::MAX,
u32_field: u32::MAX,
u64_field: u64::MAX,
u128_field: u128::MAX,
i8_field: i8::MAX,
i16_field: i16::MAX,
i32_field: i32::MAX,
i64_field: i64::MAX,
i128_field: i128::MAX,
f32_field: f32::MAX,
f64_field: f64::MAX,
usize_field: usize::MAX,
isize_field: isize::MAX,
empty_tuple: (),
}
);
musli::macros::assert_roundtrip_eq!(
full,
Primitives {
bool_field: false,
char_field: '\u{0000}',
u8_field: u8::MIN,
u16_field: u16::MIN,
u32_field: u32::MIN,
u64_field: u64::MIN,
u128_field: u128::MIN,
i8_field: i8::MIN,
i16_field: i16::MIN,
i32_field: i32::MIN,
i64_field: i64::MIN,
i128_field: i128::MIN,
f32_field: f32::MIN,
f64_field: f64::MIN,
usize_field: usize::MIN,
isize_field: isize::MIN,
empty_tuple: (),
}
);
}
#[derive(Debug, PartialEq, Encode, Decode)]
pub struct Arrays {
pub empty_array_field: [u8; 0],
pub ten_array: [i32; 10],
}
#[test]
fn arrays() {
musli::macros::assert_roundtrip_eq!(
full,
Arrays {
empty_array_field: [],
ten_array: [i32::MIN; 10],
}
);
musli::macros::assert_roundtrip_eq!(
full,
Arrays {
empty_array_field: [],
ten_array: [i32::MAX; 10],
}
);
}
#[derive(Debug, PartialEq, Encode, Decode)]
pub struct Sequences {
pub empty_sequence: Sequence<()>,
}
#[test]
fn sequences() {
musli::macros::assert_roundtrip_eq!(
full,
Sequences {
empty_sequence: Sequence(()),
}
);
musli::macros::assert_roundtrip_eq!(
full,
Sequences {
empty_sequence: Sequence(()),
}
);
}