Module syn::token [−][src]
Tokens representing Rust punctuation, keywords, and delimiters.
The type names in this module can be difficult to keep straight, so we
prefer to use the Token! macro instead. This is a type-macro that
expands to the token type of the given token.
Example
The ItemStatic syntax tree node is defined like this.
pub struct ItemStatic { pub attrs: Vec<Attribute>, pub vis: Visibility, pub static_token: Token![static], pub mutability: Option<Token![mut]>, pub ident: Ident, pub colon_token: Token![:], pub ty: Box<Type>, pub eq_token: Token![=], pub expr: Box<Expr>, pub semi_token: Token![;], }
Parsing
Keywords and punctuation can be parsed through the ParseStream::parse
method. Delimiter tokens are parsed using the parenthesized!,
bracketed! and braced! macros.
use syn::{Attribute, Result}; use syn::parse::{Parse, ParseStream}; // Parse the ItemStatic struct shown above. impl Parse for ItemStatic { fn parse(input: ParseStream) -> Result<Self> { Ok(ItemStatic { attrs: input.call(Attribute::parse_outer)?, vis: input.parse()?, static_token: input.parse()?, mutability: input.parse()?, ident: input.parse()?, colon_token: input.parse()?, ty: input.parse()?, eq_token: input.parse()?, expr: input.parse()?, semi_token: input.parse()?, }) } }
Other operations
Every keyword and punctuation token supports the following operations.
Structs
| Abstract | 
 | 
| Add | 
 | 
| AddEq | 
 | 
| And | 
 | 
| AndAnd | 
 | 
| AndEq | 
 | 
| As | 
 | 
| Async | 
 | 
| At | 
 | 
| Auto | 
 | 
| Await | 
 | 
| Bang | 
 | 
| Become | 
 | 
| Box | 
 | 
| Brace | 
 | 
| Bracket | 
 | 
| Break | 
 | 
| Caret | 
 | 
| CaretEq | 
 | 
| Colon | 
 | 
| Colon2 | 
 | 
| Comma | 
 | 
| Const | 
 | 
| Continue | 
 | 
| Crate | 
 | 
| Default | 
 | 
| Div | 
 | 
| DivEq | 
 | 
| Do | 
 | 
| Dollar | 
 | 
| Dot | 
 | 
| Dot2 | 
 | 
| Dot3 | 
 | 
| DotDotEq | 
 | 
| Dyn | 
 | 
| Else | 
 | 
| Enum | 
 | 
| Eq | 
 | 
| EqEq | 
 | 
| Extern | 
 | 
| FatArrow | 
 | 
| Final | 
 | 
| Fn | 
 | 
| For | 
 | 
| Ge | 
 | 
| Group | None-delimited group | 
| Gt | 
 | 
| If | 
 | 
| Impl | 
 | 
| In | 
 | 
| LArrow | 
 | 
| Le | 
 | 
| Let | 
 | 
| Loop | 
 | 
| Lt | 
 | 
| Macro | 
 | 
| Match | 
 | 
| Mod | 
 | 
| Move | 
 | 
| MulEq | 
 | 
| Mut | 
 | 
| Ne | 
 | 
| Or | 
 | 
| OrEq | 
 | 
| OrOr | 
 | 
| Override | 
 | 
| Paren | 
 | 
| Pound | 
 | 
| Priv | 
 | 
| Pub | 
 | 
| Question | 
 | 
| RArrow | 
 | 
| Ref | 
 | 
| Rem | 
 | 
| RemEq | 
 | 
| Return | 
 | 
| SelfType | 
 | 
| SelfValue | 
 | 
| Semi | 
 | 
| Shl | 
 | 
| ShlEq | 
 | 
| Shr | 
 | 
| ShrEq | 
 | 
| Star | 
 | 
| Static | 
 | 
| Struct | 
 | 
| Sub | 
 | 
| SubEq | 
 | 
| Super | 
 | 
| Tilde | 
 | 
| Trait | 
 | 
| Try | 
 | 
| Type | 
 | 
| Typeof | 
 | 
| Underscore | 
 | 
| Union | 
 | 
| Unsafe | 
 | 
| Unsized | 
 | 
| Use | 
 | 
| Virtual | 
 | 
| Where | 
 | 
| While | 
 | 
| Yield | 
 | 
Traits
| Token | Marker trait for types that represent single tokens. |