Skip to content

Commit b85397e

Browse files
committed
Add a tiny bit of documentation
1 parent f5e6545 commit b85397e

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,17 @@ and this to your crate root:
2323
extern crate num_derive;
2424
```
2525

26+
Then you can derive traits on your own types:
27+
28+
```rust
29+
#[derive(FromPrimitive, ToPrimitive)]
30+
enum Color {
31+
Red,
32+
Blue,
33+
Green,
34+
}
35+
```
36+
2637
## Optional features
2738

2839
- **`full-syntax`** — Enables `num-derive` to handle enum discriminants

src/lib.rs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,33 @@
1111
#![crate_type = "proc-macro"]
1212
#![doc(html_root_url = "https://docs.rs/num-derive/0.2")]
1313

14+
//! Procedural macros to derive numeric traits in Rust.
15+
//!
16+
//! ## Usage
17+
//!
18+
//! Add this to your `Cargo.toml`:
19+
//!
20+
//! ```toml
21+
//! [dependencies]
22+
//! num-traits = "0.2"
23+
//! num-derive = "0.2"
24+
//! ```
25+
//!
26+
//! Then you can derive traits on your own types:
27+
//!
28+
//! ```rust
29+
//! #[macro_use]
30+
//! extern crate num_derive;
31+
//!
32+
//! #[derive(FromPrimitive, ToPrimitive)]
33+
//! enum Color {
34+
//! Red,
35+
//! Blue,
36+
//! Green,
37+
//! }
38+
//! # fn main() {}
39+
//! ```
40+
1441
extern crate proc_macro;
1542

1643
extern crate proc_macro2;
@@ -23,6 +50,9 @@ use proc_macro2::Span;
2350

2451
use syn::{Data, Fields, Ident};
2552

53+
/// Derives [`num_traits::FromPrimitive`][from] for simple enums.
54+
///
55+
/// [from]: https://docs.rs/num-traits/0.2/num_traits/cast/trait.FromPrimitive.html
2656
#[proc_macro_derive(FromPrimitive)]
2757
pub fn from_primitive(input: TokenStream) -> TokenStream {
2858
let ast: syn::DeriveInput = syn::parse(input).unwrap();
@@ -79,6 +109,9 @@ pub fn from_primitive(input: TokenStream) -> TokenStream {
79109
res.into()
80110
}
81111

112+
/// Derives [`num_traits::ToPrimitive`][to] for simple enums.
113+
///
114+
/// [to]: https://docs.rs/num-traits/0.2/num_traits/cast/trait.ToPrimitive.html
82115
#[proc_macro_derive(ToPrimitive)]
83116
pub fn to_primitive(input: TokenStream) -> TokenStream {
84117
let ast: syn::DeriveInput = syn::parse(input).unwrap();

0 commit comments

Comments
 (0)