1use formatx::formatx;
2
3#[derive(Debug)]
4struct Point {
5 x: f64,
6 y: f64,
7}
8
9impl std::fmt::Display for Point {
10 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11 write!(f, "({}, {})", self.x, self.y)
12 }
13}
14
15fn main() {
16 let origin = Point { x: 0.0, y: 0.0 };
17 let target = Point { x: 3.5, y: -2.1 };
18
19 let result = formatx!("From {} to {}", origin, target).unwrap();
21 println!("{result}");
22
23 let result = formatx!("Debug: {:?}", origin).unwrap();
25 println!("{result}");
26
27 let result = formatx!("Pretty: {:#?}", origin).unwrap();
29 println!("{result}");
30
31 let template = formatx::Template::new("Point {name}: {point}").unwrap();
33 let r1 = template.render()
34 .named("name", &"Origin")
35 .named("point", &origin)
36 .finish()
37 .unwrap();
38 let r2 = template.render()
39 .named("name", &"Target")
40 .named("point", &target)
41 .finish()
42 .unwrap();
43 println!("{r1}");
44 println!("{r2}");
45}