poem_extensions_macro/
lib.rs

1mod api;
2mod error;
3mod one_response;
4mod response;
5mod uni_open_api;
6mod uni_response;
7
8use api::Apis;
9use error::GeneratorResult;
10use proc_macro::TokenStream;
11use response::Responses;
12use syn::{parse_macro_input, DeriveInput};
13use uni_response::SUPPORT_STATUS;
14
15#[proc_macro_derive(UniOpenApi)]
16pub fn derive_uni_open_api(input: TokenStream) -> TokenStream {
17    let args = parse_macro_input!(input as DeriveInput);
18    uni_open_api::generate(args)
19        .unwrap_or_else(|e| e.to_compile_error())
20        .into()
21}
22
23#[proc_macro]
24pub fn api(input: TokenStream) -> TokenStream {
25    let args = parse_macro_input!(input as Apis);
26    api::generate(args)
27        .unwrap_or_else(|e| e.to_compile_error())
28        .into()
29}
30
31#[proc_macro_derive(OneResponse, attributes(oai))]
32pub fn derive_one_response(input: TokenStream) -> TokenStream {
33    let args = parse_macro_input!(input as DeriveInput);
34    one_response::generate(args)
35        .unwrap_or_else(|e| e.write_errors())
36        .into()
37}
38
39#[proc_macro]
40pub fn response(input: TokenStream) -> TokenStream {
41    let args = parse_macro_input!(input as Responses);
42    response::generate(args)
43        .unwrap_or_else(|e| e.to_compile_error())
44        .into()
45}
46
47#[doc(hidden)]
48#[proc_macro]
49pub fn generate_define_uni_response(_: TokenStream) -> TokenStream {
50    uni_response::generate().into()
51}