```rust
extern crate derivetryfrom_primitive;
enum Foo { Bar, Baz = 100, Quix = 200, }
fn main() { let bar = Foo::tryfrom(0); let baz = Foo::tryfrom(100); let quix = Foo::tryfrom(200); let bad = Foo::tryfrom(300); asserteq!(bar.unwrap() as u16, 0); asserteq!(baz.unwrap() as u16, 100); asserteq!(quix.unwrap() as u16, 200); assert!(bad.isnone()); } ```