#![cfg_attr(docsrs, feature(doc_cfg))]
#![warn(missing_docs)]
mod derive_depict;
use derive_depict::*;
#[proc_macro_derive(Depict, attributes(depict))]
pub fn derive_resolve(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
let mut input: syn::DeriveInput = syn::parse_macro_input!(input);
match input.data {
syn::Data::Struct(_) => StructGenerator::generate(&mut input),
syn::Data::Enum(_) => EnumGenerator::generate(&mut input),
_ => Err(syn::Error::new(input.ident.span(), "`Depict`: not a struct")),
}
.unwrap_or_else(|e| e.to_compile_error())
.into()
}