1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
use syn::{parse_macro_input, AttributeArgs, ItemFn};
mod error;
mod operation;
mod utils;
static OPENAPI_FUNCTION_NAME_SUFFIX: &str = "__openapi";
#[proc_macro_attribute]
pub fn openapi(
attr: proc_macro::TokenStream,
input: proc_macro::TokenStream,
) -> proc_macro::TokenStream {
match operation::openapi(
parse_macro_input!(attr as AttributeArgs),
parse_macro_input!(input as ItemFn),
) {
Ok(x) => x.into(),
Err(err) => err.write().into(),
}
}