1# num-derive 2 3[![crate](https://img.shields.io/crates/v/num-derive.svg)](https://crates.io/crates/num-derive) 4[![documentation](https://docs.rs/num-derive/badge.svg)](https://docs.rs/num-derive) 5[![minimum rustc 1.31](https://img.shields.io/badge/rustc-1.31+-red.svg)](https://rust-lang.github.io/rfcs/2495-min-rust-version.html) 6[![build status](https://github.com/rust-num/num-derive/workflows/master/badge.svg)](https://github.com/rust-num/num-derive/actions) 7 8Procedural macros to derive numeric traits in Rust. 9 10## Usage 11 12Add this to your `Cargo.toml`: 13 14```toml 15[dependencies] 16num-traits = "0.2" 17num-derive = "0.3" 18``` 19 20and this to your crate root: 21 22```rust 23#[macro_use] 24extern crate num_derive; 25``` 26 27Then you can derive traits on your own types: 28 29```rust 30#[derive(FromPrimitive, ToPrimitive)] 31enum Color { 32 Red, 33 Blue, 34 Green, 35} 36``` 37 38## Optional features 39 40- **`full-syntax`** — Enables `num-derive` to handle enum discriminants 41 represented by complex expressions. Usually can be avoided by 42 [utilizing constants], so only use this feature if namespace pollution is 43 undesired and [compile time doubling] is acceptable. 44 45[utilizing constants]: https://github.com/rust-num/num-derive/pull/3#issuecomment-359044704 46[compile time doubling]: https://github.com/rust-num/num-derive/pull/3#issuecomment-359172588 47 48## Releases 49 50Release notes are available in [RELEASES.md](RELEASES.md). 51 52## Compatibility 53 54The `num-derive` crate is tested for rustc 1.31 and greater. 55 56## License 57 58Licensed under either of 59 60 * [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0) 61 * [MIT license](http://opensource.org/licenses/MIT) 62 63at your option. 64 65### Contribution 66 67Unless you explicitly state otherwise, any contribution intentionally submitted 68for inclusion in the work by you, as defined in the Apache-2.0 license, shall be 69dual licensed as above, without any additional terms or conditions. 70