Struct syn::Block [−][src]
Expand description
A braced block containing Rust statements.
This type is available only if Syn is built with the "full"
feature.
Fields
brace_token: Brace
stmts: Vec<Stmt>
Statements in a block
Implementations
Parse the body of a block as zero or more statements, possibly including one trailing expression.
This function is available only if Syn is built with the "parsing"
feature.
Example
use syn::{braced, token, Attribute, Block, Ident, Result, Stmt, Token}; use syn::parse::{Parse, ParseStream}; // Parse a function with no generics or parameter list. // // fn playground { // let mut x = 1; // x += 1; // println!("{}", x); // } struct MiniFunction { attrs: Vec<Attribute>, fn_token: Token![fn], name: Ident, brace_token: token::Brace, stmts: Vec<Stmt>, } impl Parse for MiniFunction { fn parse(input: ParseStream) -> Result<Self> { let outer_attrs = input.call(Attribute::parse_outer)?; let fn_token: Token![fn] = input.parse()?; let name: Ident = input.parse()?; let content; let brace_token = braced!(content in input); let inner_attrs = content.call(Attribute::parse_inner)?; let stmts = content.call(Block::parse_within)?; Ok(MiniFunction { attrs: { let mut attrs = outer_attrs; attrs.extend(inner_attrs); attrs }, fn_token, name, brace_token, stmts, }) } }
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Block
impl UnwindSafe for Block
Blanket Implementations
Mutably borrows from an owned value. Read more