1 /// Check the `util` module to see how the `Card` structure is implemented.
2 pub mod utils;
3 use crate::utils::*;
4 
main()5 pub fn main() {
6     let card = Card::open_global();
7 
8     // Attempt to acquire and release master lock
9     println!("Get Master lock: {:?}", card.acquire_master_lock());
10     println!("Release Master lock: {:?}", card.release_master_lock());
11 
12     // Get the Bus ID of the device
13     println!("Getting Bus ID: {:?}", card.get_bus_id().unwrap());
14 
15     // Figure out driver in use
16     println!("Getting driver info");
17     let driver = card.get_driver().unwrap();
18     println!("\tName: {:?}", driver.name());
19     println!("\tDate: {:?}", driver.date());
20     println!("\tDesc: {:?}", driver.description());
21 
22     // Enable all possible client capabilities
23     println!("Setting client capabilities");
24     for &cap in capabilities::CLIENT_CAP_ENUMS {
25         println!("\t{:?}: {:?}", cap, card.set_client_capability(cap, true));
26     }
27 
28     // Get driver capabilities
29     println!("Getting driver capabilities");
30     for &cap in capabilities::DRIVER_CAP_ENUMS {
31         println!("\t{:?}: {:?}", cap, card.get_driver_capability(cap));
32     }
33 }
34