Skip to main content

orga_macros/
lib.rs

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}