WARNING: This crate is no longer maintained. The literal parsing logic in this crate has been moved into
syn 0.12
.To get similar behaviour with
syn
, parse asyn::Lit
by callingsyn::parse2::<syn::Lit>(ts)
orsyn::parse_str::<syn::Lit>(s)
.
This crate provides extension methods to proc-macro
, and proc-macro2
's
Literal
types. These methods provide a mechanism for extracting the value of
the type.
Adds a trait with implementations for the types proc_macro2::Literal
,
proc_macro::Literal
, and DummyLiteral
with the following methods for
extracting the value of the type:
pub trait LiteralExt {
/// If the `Literal` is an integer literal, returns its value.
fn parse_int(&self) -> Option<IntLit>;
/// If the `Literal` is a floating point literal, returns its value.
fn parse_float(&self) -> Option<FloatLit>;
/// If the `Literal` is a string literal, returns it's value.
fn parse_string(&self) -> Option<String>;
/// If the `Literal` is a char literal, returns it's value.
fn parse_char(&self) -> Option<char>;
/// If the `Literal` is a byte string literal, returns it's value.
fn parse_bytes(&self) -> Option<Vec<u8>>;
/// If the `Literal` is a byte literal, returns it's value.
fn parse_byte(&self) -> Option<u8>;
/// If the `Literal` is an inner doc comment (`//!` or `/*!`), returns a
/// string with the text of the comment.
fn parse_inner_doc(&self) -> Option<String>;
/// If the `Literal` is an outer doc comment (`///` or `/**`), returns a
/// string with the text of the comment.
fn parse_outer_doc(&self) -> Option<String>;
}
-
i128
: Add support for interpreting thei128
andu128
integer types. nightly only -
proc-macro2
default: ImplementLiteralExt
onproc_macro2::Literal
. -
proc-macro
: ImplementLiteralExt
onproc_macro::Literal
. nightly only -
dummy
: Export a typeDummyLiteral
with a public constructor which implements theLiteralExt
trait.