Struct Ident
struct Ident { ... }
A word of Rust code, which may be a keyword or legal variable name.
An identifier consists of at least one Unicode code point, the first of which has the XID_Start property and the rest of which have the XID_Continue property.
- The empty string is not an identifier. Use
Option<Ident>. - A lifetime is not an identifier. Use
syn::Lifetimeinstead.
An identifier constructed with Ident::new is permitted to be a Rust
keyword, though parsing one through its Parse implementation rejects
Rust keywords. Use input.call(Ident::parse_any) when parsing to match the
behaviour of Ident::new.
Examples
A new ident can be created from a string using the Ident::new function.
A span must be provided explicitly which governs the name resolution
behavior of the resulting identifier.
use ;
An ident can be interpolated into a token stream using the quote! macro.
use ;
use quote;
A string representation of the ident is available through the to_string()
method.
# use ;
#
# let ident = new;
#
// Examine the ident as a string.
let ident_string = ident.to_string;
if ident_string.len > 60
Implementations
impl Ident
fn new(string: &str, span: Span) -> SelfCreates a new
Identwith the givenstringas well as the specifiedspan.The
stringargument must be a valid identifier permitted by the language, otherwise the function will panic.Note that
span, currently in rustc, configures the hygiene information for this identifier.As of this time
Span::call_site()explicitly opts-in to "call-site" hygiene meaning that identifiers created with this span will be resolved as if they were written directly at the location of the macro call, and other code at the macro call site will be able to refer to them as well.Later spans like
Span::def_site()will allow to opt-in to "definition-site" hygiene meaning that identifiers created with this span will be resolved at the location of the macro definition and other code at the macro call site will not be able to refer to them.Due to the current importance of hygiene this constructor, unlike other tokens, requires a
Spanto be specified at construction.Panics
Panics if the input string is neither a keyword nor a legal variable name. If you are not sure whether the string contains an identifier and need to handle an error case, use
syn::parse_str::<Ident>rather thanIdent::new.fn new_raw(string: &str, span: Span) -> SelfSame as
Ident::new, but creates a raw identifier (r#ident). Thestringargument must be a valid identifier permitted by the language (including keywords, e.g.fn). Keywords which are usable in path segments (e.g.self,super) are not supported, and will cause a panic.fn span(self: &Self) -> SpanReturns the span of this
Ident.fn set_span(self: &mut Self, span: Span)Configures the span of this
Ident, possibly changing its hygiene context.
impl Clone for Ident
fn clone(self: &Self) -> Ident
impl Debug for Ident
fn fmt(self: &Self, f: &mut fmt::Formatter<'_>) -> fmt::Result
impl Display for Ident
fn fmt(self: &Self, f: &mut fmt::Formatter<'_>) -> fmt::Result
impl Eq for Ident
impl Freeze for Ident
impl Hash for Ident
fn hash<H: Hasher>(self: &Self, hasher: &mut H)
impl Ord for Ident
fn cmp(self: &Self, other: &Ident) -> Ordering
impl PartialEq for Ident
fn eq(self: &Self, other: &Ident) -> bool
impl PartialOrd for Ident
fn partial_cmp(self: &Self, other: &Ident) -> Option<Ordering>
impl RefUnwindSafe for Ident
impl Send for Ident
impl Sync for Ident
impl Unpin for Ident
impl UnwindSafe for Ident
impl<T> Any for Ident
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for Ident
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for Ident
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> CloneToUninit for Ident
unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)
impl<T> From for Ident
fn from(t: T) -> TReturns the argument unchanged.
impl<T> PartialEq for Ident
fn eq(self: &Self, other: &T) -> bool
impl<T> ToOwned for Ident
fn to_owned(self: &Self) -> Tfn clone_into(self: &Self, target: &mut T)
impl<T> ToString for Ident
fn to_string(self: &Self) -> String
impl<T, U> Into for Ident
fn into(self: Self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom for Ident
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for Ident
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>