forked from mirrors/gecko-dev
45 lines
1.4 KiB
Rust
45 lines
1.4 KiB
Rust
extern crate libudev;
|
|
|
|
use std::io;
|
|
|
|
fn main() {
|
|
let context = libudev::Context::new().unwrap();
|
|
list_devices(&context).unwrap();
|
|
}
|
|
|
|
fn list_devices(context: &libudev::Context) -> io::Result<()> {
|
|
let mut enumerator = try!(libudev::Enumerator::new(&context));
|
|
|
|
for device in try!(enumerator.scan_devices()) {
|
|
println!("");
|
|
println!("initialized: {:?}", device.is_initialized());
|
|
println!(" devnum: {:?}", device.devnum());
|
|
println!(" syspath: {:?}", device.syspath());
|
|
println!(" devpath: {:?}", device.devpath());
|
|
println!(" subsystem: {:?}", device.subsystem());
|
|
println!(" sysname: {:?}", device.sysname());
|
|
println!(" sysnum: {:?}", device.sysnum());
|
|
println!(" devtype: {:?}", device.devtype());
|
|
println!(" driver: {:?}", device.driver());
|
|
println!(" devnode: {:?}", device.devnode());
|
|
|
|
if let Some(parent) = device.parent() {
|
|
println!(" parent: {:?}", parent.syspath());
|
|
}
|
|
else {
|
|
println!(" parent: None");
|
|
}
|
|
|
|
println!(" [properties]");
|
|
for property in device.properties() {
|
|
println!(" - {:?} {:?}", property.name(), property.value());
|
|
}
|
|
|
|
println!(" [attributes]");
|
|
for attribute in device.attributes() {
|
|
println!(" - {:?} {:?}", attribute.name(), attribute.value());
|
|
}
|
|
}
|
|
|
|
Ok(())
|
|
}
|