enumerare_macros/
lib.rs

1mod helpers;
2mod macros;
3
4use proc_macro::TokenStream;
5use syn::{parse_macro_input, DeriveInput};
6
7use helpers::to_compile_err;
8use macros::{derive_cycle, derive_default, derive_sized_enum};
9
10#[proc_macro_derive(Cycle)]
11pub fn derive_cycle_macro(input: TokenStream) -> TokenStream {
12	derive_cycle(&parse_macro_input!(input as DeriveInput))
13		.unwrap_or_else(to_compile_err)
14		.into()
15}
16
17#[proc_macro_derive(DefaultEnum, attributes(default))]
18pub fn derive_default_macro(input: TokenStream) -> TokenStream {
19	derive_default(&parse_macro_input!(input as DeriveInput))
20		.unwrap_or_else(to_compile_err)
21		.into()
22}
23
24#[proc_macro_derive(SizedEnum)]
25pub fn derive_sized_enum_macro(input: TokenStream) -> TokenStream {
26	derive_sized_enum(&parse_macro_input!(input as DeriveInput))
27		.unwrap_or_else(to_compile_err)
28		.into()
29}