Struct syn::Ident [] [src]

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.

  • The empty string is not an identifier. Use Option<Ident>.
  • An underscore by itself is not an identifier. Use Token![_] instead.
  • A lifetime is not an identifier. Use syn::Lifetime instead.

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]

[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]

[src]

[src]

impl ToTokens for Ident
[src]

[src]

Write self to the given Tokens. Read more

[src]

Convert self directly into a Tokens object. Read more

impl Copy for Ident
[src]

impl Clone for Ident
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

impl Debug for Ident
[src]

[src]

Formats the value using the given formatter.

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

[src]

Performs the conversion.

impl From<Self_> for Ident
[src]

[src]

Performs the conversion.

impl From<CapSelf> for Ident
[src]

[src]

Performs the conversion.

impl From<Super> for Ident
[src]

[src]

Performs the conversion.

impl From<Crate> for Ident
[src]

[src]

Performs the conversion.

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

[src]

Performs the conversion.

impl From<String> for Ident
[src]

[src]

Performs the conversion.

impl AsRef<str> for Ident
[src]

[src]

Performs the conversion.

impl Display for Ident
[src]

[src]

Formats the value using the given formatter. Read more

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

[src]

This method tests for self and other values to be equal, and is used by ==. Read more

1.0.0
[src]

This method tests for !=.

impl Eq for Ident
[src]

impl PartialOrd for Ident
[src]

[src]

This method returns an ordering between self and other values if one exists. Read more

1.0.0
[src]

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

1.0.0
[src]

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

1.0.0
[src]

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

1.0.0
[src]

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

impl Ord for Ident
[src]

[src]

This method returns an Ordering between self and other. Read more

1.22.0
[src]

Compares and returns the maximum of two values. Read more

1.22.0
[src]

Compares and returns the minimum of two values. Read more

impl Hash for Ident
[src]

[src]

Feeds this value into the given [Hasher]. Read more

1.3.0
[src]

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