Expand description
§enum-repr-derive
Procedural derive macro for converting fieldless enums to (Into
) and from (TryFrom
) its repr type.
See the Nomicon section on repr
for more details on fieldless enums.
§Example code
By using this library the following code just works:
extern crate enum_repr_derive;
use enum_repr_derive::{FromEnumToRepr, TryFromReprToEnum};
use std::convert::TryFrom;
#[repr(i8)]
#[derive(TryFromReprToEnum, FromEnumToRepr, Copy, Clone, Debug, PartialEq)]
enum Foo {
VAR1 = -1,
VAR2 = -3,
}
assert_eq!(Foo::try_from(-1), Ok(Foo::VAR1));
assert_eq!(Foo::try_from(-3), Ok(Foo::VAR2));
assert_eq!(Foo::try_from(-9), Err(-9));
assert_eq!(Into::<i8>::into(Foo::VAR1), -1);
assert_eq!(Into::<i8>::into(Foo::VAR2), -3);
assert_eq!(i8::from(Foo::VAR1), -1);
assert_eq!(i8::from(Foo::VAR2), -3);
§License
Licensed under MIT. See LICENSE
file.
§For developers
Release: cargo release