use gir_parser::{prelude::*, Repository}; fn main() { let paths = std::fs::read_dir("./gir-files").unwrap(); let mut namespaces = std::collections::HashMap::new(); let mut total_namespaces = 0; for path in paths { let path = path.unwrap().path(); let gir_file = path.file_name().unwrap().to_str().unwrap(); Repository::from_path_follow_namespaces_and_cache(&mut namespaces, gir_file, "./gir-files") .unwrap(); } for (name, repo) in &namespaces { println!("Library: {}", repo.namespace().name()); println!("GIR File: {}", name); println!("Version: {}", repo.namespace().version()); println!( "Dependencies: {}", repo.namespace_includes() .iter() .map(|n| n.as_package()) .collect::>() .join(", ") ); println!("Classes: {}", repo.namespace().classes().len()); println!("\n ############## \n"); total_namespaces += 1; } println!("Total namespaces read in: {total_namespaces}"); println!("\n ***************** \n"); }