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