1extern crate proc_macro;
2
3mod agent_macro;
4mod operation_macro;
5
6use proc_macro::TokenStream;
7
8#[proc_macro_attribute]
9pub fn agent(_attr: TokenStream, item: TokenStream) -> TokenStream {
10 agent_macro::mark_agent_struct(item)
11}
12
13#[proc_macro_attribute]
14pub fn agent_impl(_attr: TokenStream, item: TokenStream) -> TokenStream {
15 agent_macro::expand_agent_impl(item)
16}
17#[proc_macro_attribute]
18pub fn operation(_attr: TokenStream, item: TokenStream) -> TokenStream {
19 operation_macro::mark_operation(item)
20}