#![cfg(feature = "serde_support")]
#[macro_use]
extern crate serde_derive;
extern crate serde;
extern crate serde_json;
use id_tree::Tree;
use id_tree_layout::{Layouter, Visualize};
#[derive(Serialize, Deserialize)]
struct MyNodeData<'a> {
text: &'a str,
is_terminal: bool,
}
impl<'a> Visualize for MyNodeData<'a> {
fn visualize(&self) -> std::string::String {
self.text.to_string()
}
fn emphasize(&self) -> bool {
self.is_terminal
}
}
fn main() {
let json = std::fs::read_to_string("examples/parse_tree.json")
.expect("Can't read file 'examples/parse_tree.json'");
let tree: Tree<MyNodeData> = serde_json::from_str(&json).unwrap();
Layouter::new(&tree)
.with_file_path(std::path::Path::new("examples/example2.svg"))
.write()
.expect("Failed writing layout")
}