1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
mod enu;
mod func;
mod structure;
mod util;

use proc_macro::TokenStream;
use enu::Method;
use structure::feign_impl;
use func::http_impl;

#[proc_macro_attribute]
pub fn feign(attr: TokenStream, item: TokenStream) -> TokenStream {
    feign_impl(attr, item)
}

#[proc_macro_attribute]
pub fn get(attr: TokenStream, item: TokenStream) -> TokenStream {
    http_impl(Method::GET, attr, item)
}

#[proc_macro_attribute]
pub fn post(attr: TokenStream, item: TokenStream) -> TokenStream {
    http_impl(Method::POST, attr, item)
}

#[proc_macro_attribute]
pub fn put(attr: TokenStream, item: TokenStream) -> TokenStream {
    http_impl(Method::PUT, attr, item)
}

#[proc_macro_attribute]
pub fn delete(attr: TokenStream, item: TokenStream) -> TokenStream {
    http_impl(Method::DELETE, attr, item)
}