items/
items.rs

1fn main() {
2    use crate_inspector::CrateBuilder;
3
4    let builder = CrateBuilder::default()
5        .toolchain("nightly")
6        .manifest_path("Cargo.toml");
7    let krate = builder.build().unwrap();
8
9    for item in krate.items() {
10        println!("item: {:?}", item.name);
11    }
12    for strc in krate.structs() {
13        println!("struct: {}", strc.name());
14        println!("#impls: {}", strc.impls().count());
15    }
16    for enm in krate.enums() {
17        println!("enum: {}", enm.name());
18        println!("variants: {:?}", enm.variants().collect::<Vec<_>>());
19        println!(
20            "#methods: {}",
21            enm.impls().fold(0, |acc, i| acc + i.functions().count())
22        );
23        println!("#associated_impls: {}", enm.associated_impls().count());
24        println!("#impls: {}", enm.impls().count());
25    }
26    for trt in krate.traits() {
27        println!("trait: {}", trt.name());
28        println!("#impls: {}", trt.impls().count());
29    }
30    for sub in krate.sub_modules() {
31        println!("submodule: {}", sub.name());
32    }
33    if let Some(item) = krate.get_item("format") {
34        println!("item: {:?}", item.id);
35    }
36}