error2_derive/
lib.rs

1mod error_ext;
2
3use proc_macro::TokenStream;
4use syn::{DeriveInput, parse_macro_input};
5
6#[proc_macro_derive(ErrorExt, attributes(error2))]
7pub fn error_ext(input: TokenStream) -> TokenStream {
8    let input = parse_macro_input!(input as DeriveInput);
9
10    error_ext::generate(input)
11        .unwrap_or_else(|e| e.to_compile_error())
12        .into()
13}