expansion/helpers/derive_input_helper/
mod.rs

1type StructFields = syn::punctuated::Punctuated<syn::Field, syn::Token![,]>;
2
3pub struct DeriveInputHelper {
4    value: syn::DeriveInput
5}
6
7impl DeriveInputHelper {
8    // pub type AttributeArgs = Vec<NestedMeta>;
9    pub fn new(value: syn::DeriveInput) -> Self { Self { value } }
10    pub fn value(&self) -> &syn::DeriveInput { &self.value }
11    pub fn get_fields(&self) -> syn::Result<&StructFields> {
12        if let syn::Data::Struct(
13            syn::DataStruct {
14                fields: syn::Fields::Named(
15                    syn::FieldsNamed {
16                        ref named,
17                        ..
18                    }
19                ),
20                ..
21            }
22        ) = self.value().data {
23            Ok(named)
24        } else {
25            Err(syn::Error::new_spanned(self.value(), "Must Define On Struct, Not Allow On Enum Or Union".to_string()))
26        }
27    }
28}
29