ketchup_derive/
lib.rs

1// The `quote!` macro requires deep recursion.
2#![recursion_limit = "196"]
3
4mod parser;
5mod errors;
6
7use proc_macro2::TokenStream;
8use quote::quote;
9use syn::ItemEnum;
10use crate::parser::Parser;
11
12const KETCHUP_ATTR: &str = "ketchup";
13
14#[proc_macro_derive(Ketchup)]
15pub fn parser(item: proc_macro::TokenStream) -> proc_macro::TokenStream {
16    generate(item.into()).into()
17}
18
19fn generate(input: TokenStream) -> TokenStream {
20    let item: ItemEnum = syn::parse2(input).expect("Mustard can only be derived for enums");
21
22    let name = &item.ident;
23
24    todo!()
25}