poem_extensions_macro/
lib.rs1mod 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}