#![recursion_limit = "128"]
#![doc(html_playground_url = "https://play.rust-lang.org/")]
extern crate frunk_proc_macro_helpers;
extern crate proc_macro;
#[macro_use]
extern crate quote;
extern crate syn;
use proc_macro::TokenStream;
mod derive_generic;
use crate::derive_generic::impl_generic;
mod derive_labelled_generic;
use crate::derive_labelled_generic::impl_labelled_generic;
use quote::ToTokens;
#[proc_macro_derive(Generic)]
pub fn generic(input: TokenStream) -> TokenStream {
let gen = impl_generic(input);
gen.into_token_stream().into()
}
#[proc_macro_derive(LabelledGeneric)]
pub fn labelled_generic(input: TokenStream) -> TokenStream {
let gen = impl_labelled_generic(input);
gen.into_token_stream().into()
}