This crate exports a macro enum_from_primitive! that wraps an
enum declaration and automatically adds an implementation of
num::FromPrimitive (reexported here), to allow conversion from
primitive integers to the enum. It therefore provides an
alternative to the built-in #[derive(FromPrimitive)], which
requires the unstable std::num::FromPrimitive and is disabled in
Rust 1.0.
The current implementation requires all variants of the num to have an explicit discriminator value. This restriction may be relaxed in future versions.
Usage
Add the following to your Cargo.toml file:
[dependencies]
enum_primitive = "*"
Import the crate using #[macro_use] extern crate enum_primitive, and
wrap your enum declaration inside the enum_from_primitive! macro.
Example
extern crate enum_primitive;
extern crate num;
use FromPrimitive;
enum_from_primitive!