batched_derive/
lib.rs

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}