Expand description
A braced block containing Rust statements.
This type is available only if Syn is built with the "full" feature.
Fields
brace_token: Bracestmts: Vec<Stmt>Statements in a block
Implementations
sourceimpl Block
 
impl Block
sourcepub fn parse_within(input: ParseStream<'_>) -> Result<Vec<Stmt>>
 
pub fn parse_within(input: ParseStream<'_>) -> Result<Vec<Stmt>>
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
sourceimpl ToTokens for Block
 
impl ToTokens for Block
sourcefn to_tokens(&self, tokens: &mut TokenStream)
 
fn to_tokens(&self, tokens: &mut TokenStream)
Write self to the given TokenStream. Read more
sourcefn to_token_stream(&self) -> TokenStream
 
fn to_token_stream(&self) -> TokenStream
Convert self directly into a TokenStream object. Read more
sourcefn into_token_stream(self) -> TokenStream
 
fn into_token_stream(self) -> TokenStream
Convert self directly into a TokenStream object. Read more
Auto Trait Implementations
impl RefUnwindSafe for Block
impl !Send for Block
impl !Sync for Block
impl Unpin for Block
impl UnwindSafe for Block
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
    T: ?Sized, 
 
impl<T> BorrowMut<T> for T where
    T: ?Sized, 
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Spanned for T where
    T: Spanned + ?Sized, 
 
impl<T> Spanned for T where
    T: Spanned + ?Sized, 
sourcefn span(&self) -> Span
 
fn span(&self) -> Span
Returns a Span covering the complete contents of this syntax tree
node, or Span::call_site() if this node is empty. Read more