1mod enu;
2mod func;
3mod structure;
4mod util;
5
6use enu::Method;
7use func::http_impl;
8use proc_macro::TokenStream;
9use structure::{feign_client_impl, feign_impl};
10
11#[proc_macro_derive(Feign, attributes(url_path, query, header, param))]
12pub fn feign_client(item: TokenStream) -> TokenStream {
13 feign_client_impl(item)
14}
15
16#[proc_macro_attribute]
17pub fn feign(attr: TokenStream, item: TokenStream) -> TokenStream {
18 feign_impl(attr, item)
19}
20
21#[proc_macro_attribute]
22pub fn get(attr: TokenStream, item: TokenStream) -> TokenStream {
23 http_impl(Method::GET, attr, item)
24}
25
26#[proc_macro_attribute]
27pub fn post(attr: TokenStream, item: TokenStream) -> TokenStream {
28 http_impl(Method::POST, attr, item)
29}
30
31#[proc_macro_attribute]
32pub fn put(attr: TokenStream, item: TokenStream) -> TokenStream {
33 http_impl(Method::PUT, attr, item)
34}
35
36#[proc_macro_attribute]
37pub fn delete(attr: TokenStream, item: TokenStream) -> TokenStream {
38 http_impl(Method::DELETE, attr, item)
39}