Struct Ident
pub struct Ident(pub(crate) Ident<Span, Symbol>);
An identifier (ident).
Fields
0: Ident<Span, Symbol>
Implementations
impl Ident
fn new(string: &str, span: Span) -> IdentCreates a new
Identwith the givenstringas well as the specifiedspan. Thestringargument must be a valid identifier permitted by the language (including keywords, e.g.selforfn). Otherwise, the function will panic.The constructed identifier will be NFC-normalized. See the Reference for more info.
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.fn new_raw(string: &str, span: Span) -> IdentSame as
Ident::new, but creates a raw identifier (r#ident). Thestringargument 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) -> SpanReturns the span of this
Ident, encompassing the entire string returned byto_string.fn set_span(&mut self, span: Span)Configures the span of this
Ident, possibly changing its hygiene context.
Trait Implementations
impl Clone for Ident
fn clone(&self) -> Self
impl Debug for Ident
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl Display for Ident
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl ToTokens for Ident
fn to_tokens(&self, tokens: &mut TokenStream)
Auto Trait Implementations
impl !Send for Ident
impl !Sync for Ident
impl Freeze for Ident
impl RefUnwindSafe for Ident
impl Unpin for Ident
impl UnsafeUnpin for Ident
impl UnwindSafe for Ident
Blanket Implementations
impl<T> Any for Ident
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for Ident
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for Ident
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> CloneToUninit for Ident
where
T: Clone,
unsafe fn clone_to_uninit(&self, dest: *mut u8)
impl<T> From<T> for Ident
fn from(t: T) -> TReturns the argument unchanged.
impl<T> RepToTokensExt for Ident
where
T: ToTokens + ?Sized,
impl<T> SizeHint for Ident
where
T: ?Sized,
fn lower_bound(&self) -> usizefn upper_bound(&self) -> Option<usize>
impl<T> SizedTypeProperties for Ident
impl<T> ToOwned for Ident
where
T: Clone,
type Owned = T;fn to_owned(&self) -> Tfn clone_into(&self, target: &mut T)
impl<T> ToString for Ident
where
T: Display + ?Sized,
fn to_string(&self) -> String
impl<T, U> Into<U> for Ident
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for Ident
where
U: Into<T>,
type Error = never;fn try_from(value: U) -> Result<T, never>
impl<T, U> TryInto<U> for Ident
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>