1#![forbid(unsafe_code)]
2
3mod app;
4mod handler;
5mod logger;
6mod middleware;
7mod request;
8
9use proc_macro::TokenStream;
10#[proc_macro_attribute]
22pub fn path_type(attr: TokenStream, input: TokenStream) -> TokenStream {
23 request::make_path_type(attr, input)
24}
25
26#[proc_macro_attribute]
27pub fn query_type(attr: TokenStream, input: TokenStream) -> TokenStream {
28 request::make_query_type(attr, input)
29}
30
31#[proc_macro_attribute]
32pub fn handler(args: TokenStream, input: TokenStream) -> TokenStream {
33 handler::make_handler(args, input)
34}
35
36#[proc_macro_attribute]
37pub fn middleware(args: TokenStream, input: TokenStream) -> TokenStream {
38 middleware::make_middleware(args, input)
39}
40
41#[proc_macro]
42pub fn app(input: TokenStream) -> TokenStream {
43 match app::make_app(input) {
44 Ok(r) => r,
45 Err(e) => e,
46 }
47}