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