axum_error_object_macros/
lib.rs

1use proc_macro::TokenStream;
2use syn::{DeriveInput, parse_macro_input};
3
4mod attrs;
5mod expand;
6
7#[proc_macro_derive(ErrorResponse, attributes(response))]
8pub fn derive_error_response(input: TokenStream) -> TokenStream {
9    let input = parse_macro_input!(input as DeriveInput);
10
11    match expand::expand(input) {
12        Ok(stream) => stream,
13        Err(error) => error.to_compile_error().into(),
14    }
15}