use syn::Path;
use super::{impl_parse, parse_assign, Merge};
#[derive(Default)]
pub struct DocAttr {
pub validator: Option<Path>,
pub crate_path: Option<Path>,
pub formatter: Option<Path>,
}
impl Merge for DocAttr {
fn merge(acc: Self, cur: Self) -> Self {
Self {
validator: cur.validator.or(acc.validator),
crate_path: cur.crate_path.or(acc.crate_path),
formatter: cur.formatter.or(acc.formatter),
}
}
}
impl_parse! {
DocAttr(input, output) {
"validator" => {
output.validator = Some(parse_assign::<Path>(input)?);
},
"crate" => {
output.crate_path = Some(parse_assign::<Path>(input)?);
},
"formatter" => {
output.formatter = Some(parse_assign::<Path>(input)?);
}
}
}