1mod name;
2mod predicates;
3mod variants;
4
5use proc_macro::TokenStream;
6use syn::{ItemEnum, parse_macro_input};
7
8#[proc_macro_derive(Name, attributes(name))]
9pub fn name(input: TokenStream) -> TokenStream {
10 name::name(parse_macro_input!(input as ItemEnum))
11 .unwrap_or_else(|e| e.into_compile_error())
12 .into()
13}
14
15#[proc_macro_derive(Predicates)]
16pub fn predicates(input: TokenStream) -> TokenStream {
17 predicates::predicates(parse_macro_input!(input as ItemEnum)).into()
18}
19
20#[proc_macro_derive(Variants)]
21pub fn variants(input: TokenStream) -> TokenStream {
22 variants::variants(parse_macro_input!(input as ItemEnum))
23 .unwrap_or_else(|e| e.into_compile_error())
24 .into()
25}