[−][src]Macro syn::braced
Parse a set of curly braces and expose their content to subsequent parsers.
Example
#[macro_use] extern crate syn; use syn::{token, Ident, Type}; use syn::parse::{Parse, ParseStream, Result}; use syn::punctuated::Punctuated; // Parse a simplified struct syntax like: // // struct S { // a: A, // b: B, // } struct Struct { struct_token: Token![struct], ident: Ident, brace_token: token::Brace, fields: Punctuated<Field, Token![,]>, } struct Field { name: Ident, colon_token: Token![:], ty: Type, } impl Parse for Struct { fn parse(input: ParseStream) -> Result<Self> { let content; Ok(Struct { struct_token: input.parse()?, ident: input.parse()?, brace_token: braced!(content in input), fields: content.parse_terminated(Field::parse)?, }) } } impl Parse for Field { fn parse(input: ParseStream) -> Result<Self> { Ok(Field { name: input.parse()?, colon_token: input.parse()?, ty: input.parse()?, }) } }