Skip to main content

vine_axum_macros/
lib.rs

1mod controller;
2
3use proc_macro::TokenStream;
4use syn::{Item, parse_macro_input};
5use crate::controller::generate_init_fn_for_controller;
6
7#[proc_macro_attribute]
8pub fn controller(attr: TokenStream, input: TokenStream) -> TokenStream {
9    let item = parse_macro_input!(input as Item);
10
11    match item {
12        Item::Impl(item_impl) => generate_init_fn_for_controller(attr, item_impl),
13        _ => panic!("unsupported...")
14    }
15}
16
17#[proc_macro_attribute]
18pub fn get(_attr: TokenStream, input: TokenStream) -> TokenStream {
19    input
20}
21
22#[proc_macro_attribute]
23pub fn head(_attr: TokenStream, input: TokenStream) -> TokenStream {
24    input
25}
26
27#[proc_macro_attribute]
28pub fn post(_attr: TokenStream, input: TokenStream) -> TokenStream {
29    input
30}
31
32#[proc_macro_attribute]
33pub fn put(_attr: TokenStream, input: TokenStream) -> TokenStream {
34    input
35}
36
37#[proc_macro_attribute]
38pub fn delete(_attr: TokenStream, input: TokenStream) -> TokenStream {
39    input
40}