herring_derive/
lib.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#![forbid(unsafe_code)]

mod debug;
mod generate;
mod parse;

use generate::generate_impl;

#[proc_macro_derive(Herring, attributes(herring, regex, token))]
pub fn derive_herring(tokens: proc_macro::TokenStream) -> proc_macro::TokenStream {
    match generate_impl(tokens.into()) {
        Ok(expanded) => expanded,
        Err(err) => err.into_compile_error(),
    }
    .into()
}