1use inochi2d_parser::prelude::*;
2
3fn main() -> std::io::Result<()> {
4 let time = std::time::Instant::now();
5
6 let path = std::env::args()
7 .nth(1)
8 .expect("\n ✦ Usage: parsing <.inx/.inp file>\n\n ✦ Example: parsing ArchChan.inx\n");
9
10 let puppet = Puppet::open(path)?;
11
12 println!("\nMeta: {:#?}", puppet.meta);
13
14 println!("\nNodes Hierarchy:");
15 let mut tab = String::new();
16 recursive_nodes(&puppet.nodes, &mut tab);
17
18 println!("\nParams: {}", puppet.params.len());
19
20 println!("\nAnimations: {}", puppet.animations.len());
21
22 println!("\nDone: {:?}", time.elapsed());
25 Ok(())
26}
27
28fn recursive_nodes(node: &Node, tab: &mut String) {
29 tab.push_str("-");
30 println!(
31 "{tab}Node {}: {:?} - uuid: {} - z_sort: {}",
32 match &node.type_node {
33 NodeDataType::Part(_) => "Part",
34 NodeDataType::Composite(_) => "Composite",
35 NodeDataType::Mask(_) => "Mask",
36 NodeDataType::MeshGroup(_) => "MeshGroup",
37 NodeDataType::Camera(_) => "Camera",
38 NodeDataType::SimplePhysics(_) => "SimplePhysics",
39 NodeDataType::Generic => "Generic",
40 },
41 node.name,
42 node.uuid,
43 node.zsort
44 );
45 for child in &node.children {
46 recursive_nodes(child, tab);
47 }
48 tab.pop();
49}