1#![feature(proc_macro_span)]
2
3use proc_macro::TokenStream;
4
5mod call;
6mod client;
7mod entry;
8mod next;
9mod query;
10mod state;
11mod utils;
12
13#[proc_macro_derive(State)]
14pub fn derive_state(item: TokenStream) -> TokenStream {
15 state::derive(item)
16}
17
18#[proc_macro_derive(Entry, attributes(key))]
19pub fn derive_entry(item: TokenStream) -> TokenStream {
20 entry::derive(item)
21}
22
23#[proc_macro_derive(Query)]
24pub fn derive_query(item: TokenStream) -> TokenStream {
25 query::derive(item)
26}
27
28#[proc_macro_attribute]
29pub fn query(args: TokenStream, input: TokenStream) -> TokenStream {
30 query::attr(args, input)
31}
32
33#[proc_macro_derive(Call)]
34pub fn derive_call(item: TokenStream) -> TokenStream {
35 call::derive(item)
36}
37
38#[proc_macro_attribute]
39pub fn call(args: TokenStream, input: TokenStream) -> TokenStream {
40 call::attr(args, input)
41}
42
43#[proc_macro_derive(Client)]
44pub fn derive_client(item: TokenStream) -> TokenStream {
45 client::derive(item)
46}
47
48#[proc_macro_derive(Next)]
49pub fn derive_next(item: TokenStream) -> TokenStream {
50 next::derive(item)
51}