use cyme::profiler::{self, Filter};
use cyme::usb::BaseClass;
fn main() -> Result<(), String> {
let mut sp_usb = profiler::get_spusb()
.map_err(|e| format!("Failed to gather system USB data from libusb, Error({e})"))?;
let filter = Filter {
class: Some(BaseClass::Hid),
..Default::default()
};
filter.retain_buses(&mut sp_usb.buses);
sp_usb
.buses
.retain(|b| b.devices.as_ref().is_some_and(|d| d.is_empty()));
if sp_usb.buses.is_empty() {
println!("No HID devices found");
} else {
println!("Found HID devices");
}
Ok(())
}