#![cfg(feature = "test")]
use musli::{Decode, Encode};
#[derive(Debug, PartialEq, Encode, Decode)]
pub enum EmptyVariants {
Variant1,
Variant2,
}
#[derive(Debug, PartialEq, Encode, Decode)]
pub enum TupleVariants {
Variant1(String),
Variant2(u32),
}
#[derive(Debug, PartialEq, Encode, Decode)]
pub enum Variants {
Variant1 { value: String },
Variant2 { value: u32 },
}
#[test]
fn tagged_enums() {
musli::macros::assert_roundtrip_eq!(full, EmptyVariants::Variant1);
musli::macros::assert_roundtrip_eq!(full, EmptyVariants::Variant2);
musli::macros::assert_roundtrip_eq!(full, TupleVariants::Variant1(String::from("foo")));
musli::macros::assert_roundtrip_eq!(full, TupleVariants::Variant2(42));
musli::macros::assert_roundtrip_eq!(
full,
Variants::Variant1 {
value: String::from("foo"),
}
);
musli::macros::assert_roundtrip_eq!(full, Variants::Variant2 { value: 42 });
}