(attrs: &[Attribute])
| 71 | } |
| 72 | |
| 73 | pub fn extract_atom(attrs: &[Attribute]) -> Result<Option<Atom>> { |
| 74 | let Some(attr) = attrs.iter().find(|a| a.path().is_ident("atom")) else { |
| 75 | return Ok(None); |
| 76 | }; |
| 77 | match &attr.meta { |
| 78 | Meta::List(meta) => Ok(Some(Atom(meta.parse_args::<ExprPath>()?))), |
| 79 | _ => Err(Error::new_spanned(&attr.meta, "#[atom] requires a path argument, e.g. #[atom(MyAtomSet::my_atom)]")), |
| 80 | } |
| 81 | } |