1extern crate proc_macro;
2
3mod builder;
4mod parse;
5mod utils;
6
7use builder::build_code;
8use parse::{Attributes, Function};
9use proc_macro::TokenStream;
10
11#[proc_macro_attribute]
12pub fn batched(attributes: TokenStream, item: TokenStream) -> TokenStream {
13 let attributes = Attributes::parse(attributes.into());
14 let function = Function::parse(item.into());
15 let _identifier = function.identifier.clone();
16
17 let result = build_code(function, attributes).into();
18 #[cfg(test)]
19 println!("{}: {result}", _identifier);
20 result
21}