1use fmd_adm::FmdAdm;
2
3fn main() {
4 let adm = FmdAdm::open().expect("failed to open fmd adm handle");
5
6 let resources = adm.resources(true).expect("failed to list resources");
8 let count = adm.resource_count(true).expect("failed to count resources");
9 println!("=== Resources ===");
10 println!(
11 " resources(all=true).len() = {}, resource_count(all=true) = {}",
12 resources.len(),
13 count,
14 );
15 assert_eq!(resources.len(), count as usize, "resource count mismatch!");
16
17 println!("\n=== Transports ===");
19 let xprts = adm.transports().expect("failed to list transports");
20 if xprts.is_empty() {
21 println!(" (none)");
22 } else {
23 for id in &xprts {
24 println!(" transport {id}");
25 }
26 }
27
28 println!("\n=== SERD Engines ===");
30 let modules = adm.modules().expect("failed to list modules");
31 let mut total = 0;
32 for m in &modules {
33 let engines = adm
34 .serd_engines(&m.name)
35 .expect("failed to list serd engines");
36 if !engines.is_empty() {
37 println!(" {} ({} engines):", m.name, engines.len());
38 for e in &engines {
39 println!(
40 " {} - count={}, n={}, fired={}",
41 e.name, e.count, e.n, e.fired,
42 );
43 }
44 total += engines.len();
45 }
46 }
47 if total == 0 {
48 println!(" (none)");
49 }
50
51 println!("\n=== Global Stats ===");
53 let stats = adm.stats(None).expect("failed to read stats");
54 for s in &stats {
55 println!(" {}: {} ({})", s.name, s.value, s.description);
56 }
57
58 if let Some(m) = modules.first() {
60 println!("\n=== Stats for {} ===", m.name);
61 let mstats = adm
62 .stats(Some(&m.name))
63 .expect("failed to read module stats");
64 for s in &mstats {
65 println!(" {}: {} ({})", s.name, s.value, s.description);
66 }
67 }
68}