derive_getters/
extract.rs

1//! Common functions
2
3use syn::{Data, DataStruct, DeriveInput, Error, Result};
4
5use crate::faultmsg::{Problem, StructIs};
6
7pub fn named_struct(node: &DeriveInput) -> Result<&DataStruct> {
8    match node.data {
9        Data::Struct(ref structure) => Ok(structure),
10        Data::Enum(_) => Err(Error::new_spanned(
11            node,
12            Problem::NotNamedStruct(StructIs::Enum),
13        )),
14        Data::Union(_) => Err(Error::new_spanned(
15            node,
16            Problem::NotNamedStruct(StructIs::Union),
17        )),
18    }
19}