enum-repr-derive 0.1.0

Simple trait for converting enum to and from its primitive repr type
Documentation

enum-primitive-conversion

Build Status Crate Documentation

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:

#[macro_use]
extern crate enum_repr_derive;
use enum_repr_derive::{Into, TryFrom};
use std::convert::TryFrom;

#[repr(i8)]
#[derive(TryFrom, Into, 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);

License

Licensed under MIT. See LICENSE file.

For developers

Release: cargo release