use helpers::{implementation, struture};
use proc_macro::TokenStream;
use syn::{parse_macro_input, Item, Type};
use crate::helpers::traits;
mod helpers;
#[proc_macro_attribute]
pub fn warcrwlock(_: TokenStream, input: TokenStream) -> TokenStream {
let item: Item = parse_macro_input!(input);
let reply = match item {
Item::Trait(item_trait) => traits::expansion(item_trait).into(),
Item::Struct(item_struct) => struture::expansion(item_struct, None).into(),
_ => panic!("This attribute can only be used in structs and implementations."),
};
reply
}