1use syn::{spanned::Spanned, DeriveInput};
2
3pub struct InstanceItem {
7 ident: syn::Ident,
8 data_struct: syn::DataStruct
9}
10
11impl InstanceItem {
12 pub fn parse(input: DeriveInput) -> Result<Self, syn::Error> {
13 match input.data {
14 syn::Data::Struct(data_struct) => Ok(Self {
15 ident: input.ident,
16 data_struct
17 }),
18 _ => Err(syn::Error::new(
19 input.span(),
20 "Only struct can derive from Instance"
21 ))
22 }
23 }
24
25 pub fn data_struct(&self) -> &syn::DataStruct {
26 &self.data_struct
27 }
28
29 pub fn ident(&self) -> &syn::Ident {
30 &self.ident
31 }
32}