1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
use proc_macro2::TokenStream; use syn::{ self, parse::{Parse, ParseStream}, Attribute, }; pub struct Input { pub attrs: Vec<Attribute>, pub rest: TokenStream, } impl Parse for Input { fn parse(input: ParseStream) -> syn::Result<Self> { let attrs = input.call(Attribute::parse_outer)?; let rest = input.parse()?; Ok(Input { attrs, rest }) } }