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}