render_email/
render_email.rs1use tera::Context;
2use terarium::{Content, Template, TemplateGroupBuilder, TerariumBuilder};
3
4fn main() {
6 let mut builder = TerariumBuilder::default();
7
8 builder.add_template(
9 "greet_subject".to_owned(),
10 Template::new(vec![
11 Content::new("Greetings from {{sender}}".to_owned(), vec!["en".to_owned()]),
12 Content::new("Pozdrav od {{sender}}".to_owned(), vec!["cs".to_owned()]),
13 ]).unwrap(),
14 ).unwrap();
15 builder.add_template(
16 "greet_text".to_owned(),
17 Template::new(vec![
18 Content::new("Hello {{username}}".to_owned(), vec!["en".to_owned()]),
19 Content::new("Nazdar {{username}}".to_owned(), vec!["cs".to_owned()]),
20 ]).unwrap(),
21 ).unwrap();
22 builder.add_template(
23 "greet_html".to_owned(),
24 Template::new(vec![
25 Content::new("<p>Hello {{username}}</p>".to_owned(), vec!["en".to_owned()]),
26 Content::new("<p>Nazdar {{username}}</p>".to_owned(), vec!["cs".to_owned()]),
27 ]).unwrap()
28 ).unwrap();
29
30 builder.add_group(
31 "greet_email".to_string(),
32 TemplateGroupBuilder::default()
33 .add_member("subject".to_owned(), "greet_subject".to_owned())
34 .add_member("text".to_owned(), "greet_text".to_owned())
35 .add_member("html".to_owned(), "greet_html".to_owned())
36 .build(),
37 ).unwrap();
38 let terarium = builder.build().unwrap();
39
40 let mut ctx = Context::new();
41 ctx.insert("sender", "Jara Cimrman");
42 ctx.insert("username", "Karel Capek");
43
44 let rendered_group_en = terarium.render_group(&ctx, "greet_email", "en", None).unwrap();
45 let rendered_group_cs = terarium.render_group(&ctx, "greet_email", "cs", None).unwrap();
46
47 println!("\nEnglish");
48 println!("=======\n");
49 rendered_group_en.iter().for_each(|(member_key, content)| println!("{}: {}", member_key, content));
50
51 println!("\nCzech");
52 println!("=====\n");
53 rendered_group_cs.iter().for_each(|(member_key, content)| println!("{}: {}", member_key, content));
54}