ion_proc/attribute/
property.rs1use syn::meta::ParseNestedMeta;
8use syn::{LitStr, Result};
9
10use crate::attribute::name::Name;
11use crate::attribute::{ParseArgument as _, ParseAttribute};
12
13#[derive(Default)]
14pub(crate) struct PropertyAttribute {
15 pub(crate) name: Option<Name>,
16 pub(crate) alias: Vec<LitStr>,
17 pub(crate) skip: bool,
18 pub(crate) r#static: bool,
19}
20
21impl ParseAttribute for PropertyAttribute {
22 type Parent<'a> = ();
23
24 fn parse(&mut self, meta: &ParseNestedMeta) -> Result<bool> {
25 let success = self.name.parse_argument(meta, "name", "Property")?
26 || self.alias.parse_argument(meta, "alias", None)?
27 || self.skip.parse_argument(meta, "skip", "Property")?
28 || self.r#static.parse_argument(meta, "static", "Property")?;
29
30 Ok(success)
31 }
32}