#![allow(dead_code)]
use proc_macro::TokenStream;
use syn::{parse_macro_input, AttributeArgs, Expr};
mod controller;
mod route;
#[proc_macro_attribute]
pub fn controller(args: TokenStream, input: TokenStream) -> TokenStream {
let input = parse_macro_input!(input as syn::ItemFn);
let args = parse_macro_input!(args as AttributeArgs);
let (method, path) = controller::generate_attrs(args);
controller::generate(input, method, path)
}
#[proc_macro]
pub fn route(input: TokenStream) -> TokenStream {
let input = parse_macro_input!(input as Expr);
route::generate(input)
}