1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
use std::fs;
use wmap_renderer::{Configuration, StageType, render_to_png, render_to_svg};
fn main() -> Result<(), Box<dyn std::error::Error>> {
// Read the example.wmap file
let map_source = fs::read_to_string("examples/example.wmap")?;
let map = wmap_parser::parse(&map_source);
let config = Configuration::default();
// Generate PNG with smart positioning
println!("Generating PNG with smart positioning...");
let png_data = render_to_png(&map, &StageType::Activities, &config)?;
fs::write("example.png", png_data)?;
println!("Generated example.png");
// Generate SVG with smart positioning
println!("Generating SVG with smart positioning...");
let svg_data = render_to_svg(&map, &StageType::Activities, &config)?;
fs::write("example.svg", svg_data)?;
println!("Generated example.svg");
// Generate with different stage type
println!("Generating with publication types stage type...");
let png_publication_types = render_to_png(&map, &StageType::PublicationTypes, &config)?;
fs::write("example_publication_types.png", png_publication_types)?;
println!("Generated example_publication_types.png");
// Generate with a custom stage type
println!("Generating with publication types stage type...");
let stage_type = StageType::Custom {
name: "My Stage Type".to_string(),
i: "Earlier".to_string(),
ii: "Early".to_string(),
iii: "Late".to_string(),
iv: "Later".to_string(),
};
let png_publication_types = render_to_svg(&map, &stage_type, &config)?;
fs::write("example_custom_stages.svg", png_publication_types)?;
println!("Generated example_publication_types.png");
// Generate without smart positioning (simple right-side positioning)
println!("Generating without smart positioning...");
let mut config_no_smart = Configuration::default();
config_no_smart.options.smart_label_positioning = false;
let png_no_smart = render_to_png(&map, &StageType::Activities, &config_no_smart)?;
fs::write("example_no_smart_positioning.png", png_no_smart)?;
println!("Generated example_no_smart_positioning.png");
println!("\nAll examples generated successfully!");
Ok(())
}
|