1#[macro_export]
5macro_rules! template {
6 ($template:expr, { $($key:ident : $val:expr),* $(,)? }) => {{
7 use std::collections::HashMap;
8 let mut map = HashMap::new();
9 $(
10 map.insert(stringify!($key), $val);
11 )*
12 $crate::utils::templating::render_template($template, &map)
13 }};
14}
15
16#[cfg(test)]
18mod tests {
19 #[test]
20 fn test_template_macro() {
21 let path = template!("src/{dir}/{name}.rs", {
22 dir: "core",
23 name: "lib"
24 });
25
26 assert_eq!(path.to_str().unwrap(), "src/core/lib.rs");
27 }
28}