1pub fn render_prompt(template: &str, vars: &[(&str, &str)]) -> String {
4 let mut result = template.to_string();
5 for (key, value) in vars {
6 result = result.replace(&format!("{{{{{}}}}}", key), value);
7 }
8 result
9}
10
11#[cfg(test)]
12mod tests {
13 use super::*;
14
15 #[test]
16 fn test_render_prompt() {
17 let template = "Hello {{name}}, your topic is {{topic}}.";
18 let result = render_prompt(template, &[("name", "Alice"), ("topic", "Rust")]);
19 assert_eq!(result, "Hello Alice, your topic is Rust.");
20 }
21
22 #[test]
23 fn test_render_prompt_missing_var() {
24 let template = "Hello {{name}}.";
25 let result = render_prompt(template, &[]);
26 assert_eq!(result, "Hello {{name}}.");
27 }
28}