use enum_derive_2018::EnumFromInner;
use macro_attr_2018::macro_attr;
macro_attr! {
#[derive(Debug, PartialEq, EnumFromInner!)]
pub enum Value {
Unit(()),
Int(i64),
Str(&'static str),
}
}
macro_attr! {
#[derive(Debug, PartialEq, EnumFromInner!)]
pub enum Degenerate {}
}
#[test]
fn test_from_inner() {
assert_eq!(Into::<Value>::into(()), Value::Unit(()));
assert_eq!(Into::<Value>::into(42i64), Value::Int(42));
assert_eq!(Into::<Value>::into("fry"), Value::Str("fry"));
assert_eq!({ let v: Value = From::from(()); v }, Value::Unit(()));
assert_eq!({ let v: Value = From::from(42i64); v }, Value::Int(42));
assert_eq!({ let v: Value = From::from("fry"); v }, Value::Str("fry"));
}