diff options
Diffstat (limited to 'syn/examples/lazy-static/README.md')
-rw-r--r-- | syn/examples/lazy-static/README.md | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/syn/examples/lazy-static/README.md b/syn/examples/lazy-static/README.md deleted file mode 100644 index bc64585..0000000 --- a/syn/examples/lazy-static/README.md +++ /dev/null @@ -1,42 +0,0 @@ -An example of parsing a custom syntax within a `functionlike!(...)` procedural -macro. Demonstrates how to trigger custom warnings and error messages on -individual tokens of the input. - -- [`lazy-static/src/lib.rs`](lazy-static/src/lib.rs) -- [`example/src/main.rs`](example/src/main.rs) - -The library implements a `lazy_static!` macro similar to the one from the real -[`lazy_static`](https://docs.rs/lazy_static/1.0.0/lazy_static/) crate on -crates.io. - -```rust -lazy_static! { - static ref USERNAME: Regex = Regex::new("^[a-z0-9_-]{3,16}$").unwrap(); -} -``` - -Compile and run the example by doing `cargo run` in the directory of the -`example` crate. - -The implementation shows how to trigger custom warnings and error messages on -the macro input. For example if you try adding an uncreatively named `FOO` lazy -static, the macro will scold you with the following warning. - -``` -warning: come on, pick a more creative name - --> src/main.rs:10:16 - | -10 | static ref FOO: String = "lazy_static".to_owned(); - | ^^^ -``` - -And if you try to lazily initialize `() = ()`, the macro will outright refuse to -compile it for you. - -``` -error: I can't think of a legitimate use for lazily initializing the value `()` - --> src/main.rs:10:27 - | -10 | static ref UNIT: () = (); - | ^^ -``` |