autoagents_derive/
lib.rs

1extern crate proc_macro;
2use agent::AgentParser;
3use proc_macro::TokenStream;
4use tool::{input::InputParser, ToolParser};
5mod agent;
6mod tool;
7
8#[proc_macro_derive(ToolInput, attributes(input))]
9pub fn input(input: TokenStream) -> TokenStream {
10    InputParser::default().parse(input)
11}
12
13#[proc_macro_attribute]
14pub fn tool(attr: TokenStream, item: TokenStream) -> TokenStream {
15    ToolParser::default().parse(attr, item)
16}
17
18#[proc_macro_attribute]
19pub fn agent(attr: TokenStream, item: TokenStream) -> TokenStream {
20    AgentParser::default().parse(attr, item)
21}