1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#[macro_use] extern crate proc_macro_hack; proc_macro_expr_impl! { pub fn internal_array_impl(input: &str) -> String { let mut parts = input.splitn(2, ' '); let count = parts.next().unwrap().parse().unwrap(); let expression = parts.next().unwrap(); let mut output = format!("{{let mut __internal_callback = {}; [", expression); for i in 0..count { output += &format!("__internal_callback({}),", i); } output + "]}" } }