swaggapi_macro/
lib.rs

1mod handler;
2mod page;
3
4use proc_macro::TokenStream;
5
6#[proc_macro_derive(SwaggapiPage, attributes(page))]
7pub fn derive_page(input: TokenStream) -> TokenStream {
8    page::page(input.into()).into()
9}
10
11#[proc_macro_attribute]
12pub fn handler(args: TokenStream, input: TokenStream) -> TokenStream {
13    handler::handler(args.into(), input.into(), None).into()
14}
15
16#[proc_macro_attribute]
17pub fn get(args: TokenStream, input: TokenStream) -> TokenStream {
18    handler::handler(args.into(), input.into(), Some("Get")).into()
19}
20
21#[proc_macro_attribute]
22pub fn post(args: TokenStream, input: TokenStream) -> TokenStream {
23    handler::handler(args.into(), input.into(), Some("Post")).into()
24}
25
26#[proc_macro_attribute]
27pub fn put(args: TokenStream, input: TokenStream) -> TokenStream {
28    handler::handler(args.into(), input.into(), Some("Put")).into()
29}
30
31#[proc_macro_attribute]
32pub fn delete(args: TokenStream, input: TokenStream) -> TokenStream {
33    handler::handler(args.into(), input.into(), Some("Delete")).into()
34}
35
36#[proc_macro_attribute]
37pub fn head(args: TokenStream, input: TokenStream) -> TokenStream {
38    handler::handler(args.into(), input.into(), Some("Head")).into()
39}
40
41#[proc_macro_attribute]
42pub fn options(args: TokenStream, input: TokenStream) -> TokenStream {
43    handler::handler(args.into(), input.into(), Some("Options")).into()
44}
45
46#[proc_macro_attribute]
47pub fn patch(args: TokenStream, input: TokenStream) -> TokenStream {
48    handler::handler(args.into(), input.into(), Some("Patch")).into()
49}
50
51#[proc_macro_attribute]
52pub fn trace(args: TokenStream, input: TokenStream) -> TokenStream {
53    handler::handler(args.into(), input.into(), Some("Trace")).into()
54}