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