[−][src]Trait syn::ext::IdentExt
Additional parsing methods for Ident
.
This trait is sealed and cannot be implemented for types outside of Syn.
This trait is available if Syn is built with the "parsing"
feature.
Required Methods
fn parse_any(input: ParseStream) -> Result<Self>
Parses any identifier including keywords.
This is useful when parsing a DSL which allows Rust keywords as identifiers.
#[macro_use] extern crate syn; use syn::Ident; use syn::ext::IdentExt; use syn::parse::{Error, ParseStream, Result}; // Parses input that looks like `name = NAME` where `NAME` can be // any identifier. // // Examples: // // name = anything // name = impl fn parse_dsl(input: ParseStream) -> Result<Ident> { let name_token: Ident = input.parse()?; if name_token != "name" { return Err(Error::new(name_token.span(), "expected `name`")); } input.parse::<Token![=]>()?; let name = input.call(Ident::parse_any)?; Ok(name) }