windows-rdl 0.100.0

RDL parser library and ECMA-335 generator
Documentation
use super::*;

#[derive(Debug)]
pub struct Module {
    pub attrs: Vec<syn::Attribute>,
    pub token: syn::Token![mod],
    pub name: syn::Ident,
    pub items: Vec<Item>,
}

impl syn::parse::Parse for Module {
    fn parse(input: syn::parse::ParseStream) -> syn::Result<Self> {
        let attrs = input.call(syn::Attribute::parse_outer)?;
        let token = input.parse()?;
        let name = input.parse()?;

        let content;
        syn::braced!(content in input);
        let mut items = vec![];

        while !content.is_empty() {
            items.push(content.parse()?);
        }

        Ok(Self {
            attrs,
            token,
            name,
            items,
        })
    }
}

impl std::fmt::Display for Module {
    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
        self.name.fmt(f)
    }
}