blob: ba9c89d4373cd85caba65e4fed73c3a1d6a1e98d [file] [log] [blame]
use enum_as_inner::EnumAsInner;
#[derive(Debug, EnumAsInner)]
enum EmptyTest {}
#[test]
fn test_empty() {
let empty = None::<EmptyTest>;
assert!(empty.is_none());
}
#[derive(Debug, EnumAsInner)]
enum EmptyParendsTest {
Empty(),
}
#[test]
fn test_empty_parends() {
let empty = EmptyParendsTest::Empty();
assert_eq!(empty.as_empty().unwrap(), ());
assert_eq!(empty.into_empty().unwrap(), ());
}
#[derive(Debug, EnumAsInner)]
enum OneTest {
One(u32),
}
#[test]
fn test_one() {
let empty = OneTest::One(1);
assert_eq!(*empty.as_one().unwrap(), 1);
assert_eq!(empty.into_one().unwrap(), 1);
}
#[derive(Debug, EnumAsInner)]
enum MultiTest {
Multi(u32, u32),
}
#[test]
fn test_multi() {
let multi = MultiTest::Multi(1, 1);
assert_eq!(multi.as_multi().unwrap(), (&1_u32, &1_u32));
assert_eq!(multi.into_multi().unwrap(), (1_u32, 1_u32));
}