1 extern crate libudev;
2 
3 use std::io;
4 
main()5 fn main() {
6     let context = libudev::Context::new().unwrap();
7     list_devices(&context).unwrap();
8 }
9 
list_devices(context: &libudev::Context) -> io::Result<()>10 fn list_devices(context: &libudev::Context) -> io::Result<()> {
11     let mut enumerator = try!(libudev::Enumerator::new(&context));
12 
13     for device in try!(enumerator.scan_devices()) {
14         println!("");
15         println!("initialized: {:?}", device.is_initialized());
16         println!("     devnum: {:?}", device.devnum());
17         println!("    syspath: {:?}", device.syspath());
18         println!("    devpath: {:?}", device.devpath());
19         println!("  subsystem: {:?}", device.subsystem());
20         println!("    sysname: {:?}", device.sysname());
21         println!("     sysnum: {:?}", device.sysnum());
22         println!("    devtype: {:?}", device.devtype());
23         println!("     driver: {:?}", device.driver());
24         println!("    devnode: {:?}", device.devnode());
25 
26         if let Some(parent) = device.parent() {
27             println!("     parent: {:?}", parent.syspath());
28         }
29         else {
30             println!("     parent: None");
31         }
32 
33         println!("  [properties]");
34         for property in device.properties() {
35             println!("    - {:?} {:?}", property.name(), property.value());
36         }
37 
38         println!("  [attributes]");
39         for attribute in device.attributes() {
40             println!("    - {:?} {:?}", attribute.name(), attribute.value());
41         }
42     }
43 
44     Ok(())
45 }
46