pub enum Lit {
Str(LitStr),
ByteStr(LitByteStr),
Byte(LitByte),
Char(LitChar),
Int(LitInt),
Float(LitFloat),
Bool(LitBool),
Verbatim(Literal),
}
Expand description
A Rust literal such as a string or integer or boolean.
Syntax tree enum
This type is a syntax tree enum.
Variants§
Str(LitStr)
A UTF-8 string literal: "foo"
.
ByteStr(LitByteStr)
A byte string literal: b"foo"
.
Byte(LitByte)
A byte literal: b'f'
.
Char(LitChar)
A character literal: 'a'
.
Int(LitInt)
An integer literal: 1
or 1u16
.
Float(LitFloat)
A floating point literal: 1f64
or 1.0e10f64
.
Must be finite. May not be infinite or NaN.
Bool(LitBool)
A boolean literal: true
or false
.
Verbatim(Literal)
A raw token literal not interpreted by Syn.
Implementations§
source§impl Lit
impl Lit
sourcepub fn new(token: Literal) -> Self
pub fn new(token: Literal) -> Self
Interpret a Syn literal from a proc-macro2 literal.
Examples found in repository?
src/lit.rs (line 749)
746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773
fn parse(input: ParseStream) -> Result<Self> {
input.step(|cursor| {
if let Some((lit, rest)) = cursor.literal() {
return Ok((Lit::new(lit), rest));
}
if let Some((ident, rest)) = cursor.ident() {
let value = ident == "true";
if value || ident == "false" {
let lit_bool = LitBool {
value,
span: ident.span(),
};
return Ok((Lit::Bool(lit_bool), rest));
}
}
if let Some((punct, rest)) = cursor.punct() {
if punct.as_char() == '-' {
if let Some((lit, rest)) = parse_negative_lit(punct, rest) {
return Ok((lit, rest));
}
}
}
Err(cursor.error("expected literal"))
})
}
pub fn suffix(&self) -> &str
pub fn span(&self) -> Span
pub fn set_span(&mut self, span: Span)
Trait Implementations§
source§impl From<Lit> for NestedMeta
impl From<Lit> for NestedMeta
source§fn from(e: Lit) -> NestedMeta
fn from(e: Lit) -> NestedMeta
Converts to this type from the input type.
source§impl From<LitByteStr> for Lit
impl From<LitByteStr> for Lit
source§fn from(e: LitByteStr) -> Lit
fn from(e: LitByteStr) -> Lit
Converts to this type from the input type.
source§impl Parse for Lit
Available on crate feature parsing
only.
impl Parse for Lit
Available on crate feature
parsing
only.fn parse(input: ParseStream<'_>) -> Result<Self>
source§impl PartialEq<Lit> for Lit
Available on crate feature extra-traits
only.
impl PartialEq<Lit> for Lit
Available on crate feature
extra-traits
only.source§impl ToTokens for Lit
Available on crate feature printing
only.
impl ToTokens for Lit
Available on crate feature
printing
only.source§fn to_tokens(&self, tokens: &mut TokenStream)
fn to_tokens(&self, tokens: &mut TokenStream)
source§fn to_token_stream(&self) -> TokenStream
fn to_token_stream(&self) -> TokenStream
source§fn into_token_stream(self) -> TokenStreamwhere
Self: Sized,
fn into_token_stream(self) -> TokenStreamwhere
Self: Sized,
impl Eq for Lit
Available on crate feature
extra-traits
only.