Struct syn::Ident [] [src]

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

A word of Rust code, such as a keyword or 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.

extern crate syn;
use syn::Ident;

let ident = Ident::from("another_identifier");

When the ident is used in Macros 1.1 output, it needs to be turned into a token stream. This is easy to do using the quote! macro from the quote crate.

// Create tokens using the ident.
let expanded = quote! { let #ident = 10; };

// Derive a new ident from the existing one.
let temp_ident = Ident::from(format!("new_{}", ident));
let expanded = quote! { let $temp_ident = 10; };

If syn is used to parse existing Rust source code, it is often useful to convert the Ident to a more generic string data type at some point. The methods as_ref() and to_string() achieve this.

// 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 a new Ident from the structured items. This is mainly used by the parser to create Idents from existing Rust source code.

Creating new Idents programmatically is easier with Ident::from.

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