I've just created https://github.com/rust-lang/rfcs/pull/3040 to propose making conversions between primitively represented enums and integers safer without the need for external crates.
I'd be very interested in any feedback folks in the community may have, either on the PR or in this thread.