1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#[cfg(feature="rocket")]
mod rocket;
#[cfg(feature="axum")]
mod axum;
use proc_macro::TokenStream;
#[proc_macro_attribute]
pub fn get_api(header: TokenStream, function: TokenStream) -> TokenStream {
cfg_if::cfg_if! {
if #[cfg(feature="rocket")] {
rocket::get::get_api(header, function)
} else if #[cfg(feature="axum")] {
axum::get::get_api(header, function)
}
}
}
#[proc_macro_attribute]
pub fn post_api(header: TokenStream, function: TokenStream) -> TokenStream {
cfg_if::cfg_if! {
if #[cfg(feature="rocket")] {
rocket::post::post_api(header, function)
} else if #[cfg(feature="axum")] {
axum::post::post_api(header, function)
}
}
}
#[proc_macro_attribute]
pub fn routes_module(header: TokenStream, inner: TokenStream) -> TokenStream {
cfg_if::cfg_if! {
if #[cfg(feature="rocket")] {
rocket::routes::routes_module(header, inner)
} else if #[cfg(feature="axum")] {
axum::routes::routes_module(header, inner)
}
}
}
#[proc_macro]
pub fn routes(inner: TokenStream) -> TokenStream {
cfg_if::cfg_if! {
if #[cfg(feature="rocket")] {
rocket::routes::routes(inner)
} else if #[cfg(feature="axum")] {
axum::routes::routes(inner)
}
}
}