use proc_macro::TokenStream;
mod default;
mod variant_default;
#[proc_macro_derive(Default, attributes(default))]
pub fn derive_default(input: TokenStream) -> TokenStream {
match default::process_default_derive(input.into()) {
Ok(ts) => ts.into(),
Err(e) => e.to_compile_error().into(),
}
}
#[proc_macro_derive(ConstDefault, attributes(default))]
pub fn derive_const_default(input: TokenStream) -> TokenStream {
match default::process_const_default_derive(input.into()) {
Ok(ts) => ts.into(),
Err(e) => e.to_compile_error().into(),
}
}
#[proc_macro_derive(VariantDefault, attributes(variant, default))]
pub fn derive_variant_default(input: TokenStream) -> TokenStream {
match variant_default::process_variant_default(input.into()) {
Ok(ts) => ts.into(),
Err(e) => e.to_compile_error().into(),
}
}