[][src]Struct syn::Ident

pub struct Ident {
    pub span: Span,
    // some fields omitted
}

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. An underscore may be used as the first character as long as it is not the only character.

An identifier constructed with Ident::new is permitted to be a Rust keyword, though parsing one through its Synom implementation rejects Rust keywords.

Examples

A new ident can be created from a string using the Ident::from function. Idents produced by Ident::from are set to resolve at the procedural macro def site by default. A different span can be provided explicitly by using Ident::new.

extern crate syn;
extern crate proc_macro2;

use syn::Ident;
use proc_macro2::Span;

fn main() {
    let def_ident = Ident::from("definitely");
    let call_ident = Ident::new("calligraphy", Span::call_site());

    println!("{} {}", def_ident, call_ident);
}

An ident can be interpolated into a token stream using the quote! macro.

#[macro_use]
extern crate quote;

extern crate syn;
use syn::Ident;

fn main() {
    let ident = Ident::from("demo");

    // Create a variable binding whose name is this ident.
    let expanded = quote! { let #ident = 10; };

    // Create a variable binding with a slightly different name.
    let temp_ident = Ident::from(format!("new_{}", ident));
    let expanded = quote! { let #temp_ident = 10; };
}

A string representation of the ident is available through the as_ref() and to_string() methods.

// Examine the ident as a &str.
let ident_str = ident.as_ref();
if ident_str.len() > 60 {
    println!("Very long identifier: {}", ident_str)
}

// Create a String from the ident.
let ident_string = ident.to_string();
give_away(ident_string);

fn give_away(s: String) { /* ... */ }

Fields

Methods

impl Ident
[src]

Creates an ident with the given string representation.

Panics

Panics if the input string is neither a keyword nor a legal variable name.

Trait Implementations

impl Synom for Ident
[src]

impl Clone for Ident
[src]

Performs copy-assignment from source. Read more

impl Copy for Ident
[src]

impl From<Ident> for Meta
[src]

impl From<Ident> for TypeParam
[src]

impl<'a> From<&'a str> for Ident
[src]

impl From<Self_> for Ident
[src]

impl From<CapSelf> for Ident
[src]

impl From<Super> for Ident
[src]

impl From<Crate> for Ident
[src]

impl<'a> From<Cow<'a, str>> for Ident
[src]

impl From<String> for Ident
[src]

impl Eq for Ident
[src]

impl AsRef<str> for Ident
[src]

impl PartialOrd<Ident> for Ident
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<T: ?Sized> PartialEq<T> for Ident where
    T: AsRef<str>, 
[src]

This method tests for !=.

impl Ord for Ident
[src]

Compares and returns the maximum of two values. Read more

Compares and returns the minimum of two values. Read more

impl Display for Ident
[src]

impl Debug for Ident
[src]

impl Hash for Ident
[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl ToTokens for Ident
[src]

Convert self directly into a Tokens object. Read more

Auto Trait Implementations

impl !Send for Ident

impl !Sync for Ident

Blanket Implementations

impl<T> Spanned for T where
    T: ToTokens
[src]

impl<T> From for T
[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<E> SpecializationError for E
[src]

impl<T> Erased for T
[src]

impl<T> Send for T where
    T: ?Sized
[src]

impl<T> Sync for T where
    T: ?Sized
[src]

impl<T> Erased for T