darpi_code_gen/
lib.rs

1#![forbid(unsafe_code)]
2
3mod app;
4mod handler;
5mod logger;
6mod middleware;
7mod request;
8
9use proc_macro::TokenStream;
10//use syn::{parse_macro_input, ExprLit};
11
12// #[proc_macro]
13// pub fn format(input: TokenStream) -> TokenStream {
14//     let input = parse_macro_input!(input as ExprLit);
15//     match logger::make_format(input) {
16//         Ok(r) => r.into(),
17//         Err(e) => e.to_compile_error().into(),
18//     }
19// }
20
21#[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}