use whatcable::{DeviceManager, Sysfs};
fn main() {
let sysfs = match std::env::args().nth(1) {
Some(p) => Sysfs::with_root(p),
None => Sysfs::linux(),
};
let mut mgr = DeviceManager::with_sysfs(sysfs);
mgr.refresh();
let snap = mgr.snapshot();
println!("USB devices : {}", snap.usb_devices.len());
println!("Type-C ports : {}", snap.typec_ports.len());
println!("USB-PD ports : {}", snap.pd_ports.len());
println!("Renderable items : {}", snap.summaries.len());
println!();
for s in &snap.summaries {
println!("• {}", s.headline);
if !s.subtitle.is_empty() {
println!(" {}", s.subtitle);
}
for b in &s.bullets {
println!(" - {b}");
}
if let Some(d) = &s.charging_diag {
println!(" diagnostic: {} ({:?})", d.summary, d.bottleneck);
}
}
}