moxy-derive 0.0.4

derive macros for moxy crate
Documentation
use crate::core::Field;

pub struct BuildSyntax {
    pub custom_name: Option<syn::Ident>,
    pub default: Option<proc_macro2::TokenStream>,
}

impl BuildSyntax {
    pub fn parse(field: &Field) -> syn::Result<Self> {
        let build_args = field.attrs().get("build")?;
        let attr = build_args.iter().find_map(|arg| arg.as_attr());
        let custom_name = attr.and_then(|a| a.get_custom_name());
        let default = attr.and_then(|a| a.get_value_tokens("default"));

        Ok(Self {
            custom_name,
            default,
        })
    }
}