chitey_codegen/
lib.rs

1#![recursion_limit = "512"]
2
3use proc_macro::TokenStream;
4
5mod route;
6
7#[proc_macro_attribute]
8pub fn route(args: TokenStream, input: TokenStream) -> TokenStream {
9    route::with_method(None, args, input)
10}
11
12#[proc_macro_attribute]
13pub fn routes(_: TokenStream, input: TokenStream) -> TokenStream {
14    route::with_methods(input)
15}
16
17macro_rules! method_macro {
18    ($variant:ident, $method:ident) => {
19        #[proc_macro_attribute]
20        pub fn $method(args: TokenStream, input: TokenStream) -> TokenStream {
21            route::with_method(Some(route::MethodType::$variant), args, input)
22        }
23    };
24}
25
26method_macro!(Get, get);
27method_macro!(Post, post);
28// method_macro!(Put, put);
29// method_macro!(Delete, delete);
30// method_macro!(Head, head);
31// method_macro!(Connect, connect);
32// method_macro!(Options, options);
33// method_macro!(Trace, trace);
34// method_macro!(Patch, patch);