enum_primitive 
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.
Documentation
https://andersk.github.io/enum_primitive-rs/enum_primitive/
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!