use proc_macro::TokenStream; use proc_macro2::TokenStream as TokenStream2; use quote::{format_ident, quote}; use syn::Ident; use crate::InputInfo; pub fn single_update(input: InputInfo) -> TokenStream { let generate_inputs: Vec> = (input.start..=input.end) .map(|count| { (input.start..(input.start + count)) .map(|i| format_ident!("t{}", i)) .collect() }) .collect(); let invocations: Vec = generate_inputs .iter() .map(|t| { let macro_ident = &input.macro_ident; quote! { #macro_ident!(#(#t,)*); } }) .collect(); TokenStream::from(quote! { #( #invocations )* }) }