Struct syn::Ident[][src]

pub struct Ident { /* 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. Use 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::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) { /* ... */ }

Methods

impl Ident
[src]

Parses any identifier

This is useful when parsing a DSL which allows Rust keywords as identifiers.

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 From<Ident> for Meta
[src]

Performs the conversion.

impl From<Ident> for TypeParam
[src]

Performs the conversion.

impl Synom for Ident
[src]

A short name of the type being parsed. Read more

impl ToTokens for Ident
[src]

Write self to the given Tokens. Read more

Convert self directly into a Tokens object. Read more

impl Copy for Ident
[src]

impl Clone for Ident
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Debug for Ident
[src]

Formats the value using the given formatter. Read more

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

Performs the conversion.

impl From<Self_> for Ident
[src]

Performs the conversion.

impl From<CapSelf> for Ident
[src]

Performs the conversion.

impl From<Super> for Ident
[src]

Performs the conversion.

impl From<Crate> for Ident
[src]

Performs the conversion.

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

Performs the conversion.

impl From<String> for Ident
[src]

Performs the conversion.

impl AsRef<str> for Ident
[src]

Performs the conversion.

impl Display for Ident
[src]

Formats the value using the given formatter. Read more

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

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

This method tests for !=.

impl Eq for Ident
[src]

impl PartialOrd for Ident
[src]

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

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 Ord for Ident
[src]

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

Compares and returns the maximum of two values. Read more

Compares and returns the minimum of two values. Read more

impl Hash for Ident
[src]

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

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

Auto Trait Implementations

impl !Send for Ident

impl !Sync for Ident