use crate::find_gpp_attr;
use syn::{Attribute, LitInt, parse};
pub struct GPPEnumVariantHelperAttribute {
pub variant_version: Option<u8>,
}
impl GPPEnumVariantHelperAttribute {
pub fn new(attrs: &[Attribute]) -> parse::Result<Self> {
let mut gpp_attr = Self {
variant_version: None,
};
if let Some(attr) = find_gpp_attr(attrs) {
attr.parse_nested_meta(|meta| {
if meta.path.is_ident("version") {
let value = meta.value()?; let s = value.parse::<LitInt>()?;
gpp_attr.variant_version = Some(s.base10_parse()?);
return Ok(());
}
Err(meta.error("unrecognized gpp enum parameter"))
})?;
}
Ok(gpp_attr)
}
}