litrs: parsing and inspecting Rust literals
litrs offers functionality to parse Rust literals, i.e. tokens in the Rust programming language that represent fixed values.
This is particularly useful for proc macros, but can also be used outside of a proc-macro context.
Why this library?
proc_macro API shipped with the compiler offers no easy way to inspect literals.
There are mainly two libraries for this purpose:
The latter is deprecated.
syn is oftentimes overkill for the task at hand, especially when developing function like proc-macros (e.g.
This crate is a lightweight alternative.
Also, when it comes to literals,
litrs offers a bit more flexibility and a few more features compared to
While this library is fairly young, it is extensively tested and I think the number of parsing bugs should already be very low. I'm interested in community feedback! If you consider using this, please speak your mind in this issue.
In proc macro
use TryFrom; use TokenStream; use Literal;
If you are expecting a specific kind of literal, you can also use this, which will return an error if the token is not a float literal.
Parsing from a
Outside of a proc macro context you might want to parse a string directly.
use ; let lit = parse.expect; let float_lit = parse.expect;
See the documentation or the
examples/ directory for more examples and information.
Licensed under either of Apache License, Version 2.0 or MIT license at your option. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.