fancy_default_derive/
lib.rs1use proc_macro::TokenStream;
6
7mod default;
8mod variant_default;
9
10#[proc_macro_derive(Default, attributes(default))]
15pub fn derive_default(input: TokenStream) -> TokenStream {
16 match default::process_default_derive(input.into()) {
17 Ok(ts) => ts.into(),
18 Err(e) => e.to_compile_error().into(),
19 }
20}
21
22#[proc_macro_derive(ConstDefault, attributes(default))]
24pub fn derive_const_default(input: TokenStream) -> TokenStream {
25 match default::process_const_default_derive(input.into()) {
26 Ok(ts) => ts.into(),
27 Err(e) => e.to_compile_error().into(),
28 }
29}
30
31#[proc_macro_derive(VariantDefault, attributes(variant, default))]
33pub fn derive_variant_default(input: TokenStream) -> TokenStream {
34 match variant_default::process_variant_default(input.into()) {
35 Ok(ts) => ts.into(),
36 Err(e) => e.to_compile_error().into(),
37 }
38}