# Macro syn::bracketed

source · [−]

    macro_rules! bracketed {
        ($content:ident in $cursor:expr) => { ... };
    }

Expand description

Parse a set of square brackets and expose their content to subsequent parsers.

## Example

    use proc_macro2::TokenStream;
    use syn::{bracketed, token, Result, Token};
    use syn::parse::{Parse, ParseStream};

    // Parse an outer attribute like:
    //
    //     #[repr(C, packed)]
    struct OuterAttribute {
        pound_token: Token![#],
        bracket_token: token::Bracket,
        content: TokenStream,
    }

    impl Parse for OuterAttribute {
        fn parse(input: ParseStream) -> Result<Self> {
            let content;
            Ok(OuterAttribute {
                pound_token: input.parse()?,
                bracket_token: bracketed!(content in input),
                content: content.parse()?,
            })
        }
    }