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!(
16 resources.len(),
17 count as usize,
18 "resource count mismatch!"
19 );
20
21 println!("\n=== Transports ===");
23 let xprts = adm.transports().expect("failed to list transports");
24 if xprts.is_empty() {
25 println!(" (none)");
26 } else {
27 for id in &xprts {
28 println!(" transport {id}");
29 }
30 }
31
32 println!("\n=== SERD Engines ===");
34 let modules = adm.modules().expect("failed to list modules");
35 let mut total = 0;
36 for m in &modules {
37 let engines =
38 adm.serd_engines(&m.name).expect("failed to list serd engines");
39 if !engines.is_empty() {
40 println!(" {} ({} engines):", m.name, engines.len());
41 for e in &engines {
42 println!(
43 " {} - count={}, n={}, fired={}",
44 e.name, e.count, e.n, e.fired,
45 );
46 }
47 total += engines.len();
48 }
49 }
50 if total == 0 {
51 println!(" (none)");
52 }
53
54 println!("\n=== Global Stats ===");
56 let stats = adm.stats(None).expect("failed to read stats");
57 for s in &stats {
58 println!(" {}: {} ({})", s.name, s.value, s.description);
59 }
60
61 if let Some(m) = modules.first() {
63 println!("\n=== Stats for {} ===", m.name);
64 let mstats =
65 adm.stats(Some(&m.name)).expect("failed to read module stats");
66 for s in &mstats {
67 println!(" {}: {} ({})", s.name, s.value, s.description);
68 }
69 }
70}