Macro syn_error_experiment::braced [−][src]
macro_rules! braced { ($content:ident in $cursor:expr) => { ... }; }
Parse a set of curly braces and expose their content to subsequent parsers.
use syn_error_experiment::{braced, token, Ident, Token}; use syn_error_experiment::parse::{Parse, ParseStream, Result}; // Parse a simplified struct syntax like: // // struct S { // a: A, // b: B, // } struct Struct { pub struct_token: Token![struct], pub ident: Ident, pub brace_token: token::Brace, pub fields: Vec<Field>, } 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()?, }) } }