}

impl Parse for CtrsInput {
    fn parse(stream: ParseStream) -> Result<Self> {
        stream.parse::<Token![macro]>()?;
        stream.parse::<Token![crate]>()?;
        let name = stream.parse::<Ident>()?;
        stream.parse::<Token![;]>()?;

        let mut items = <Vec<Item>>::new();
        while !stream.is_empty() {
            items.push(stream.parse()?);
        }

        Ok(CtrsInput {name, items})