iohidmanager 0.10.4

Safe Rust bindings for Apple's IOKit HID — enumerate, inspect, and subscribe to HID devices on macOS
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use iohidmanager::prelude::*;

#[test]
fn transaction_create_and_mutate() {
    let manager = HidManager::new().expect("manager");
    manager.set_device_matching(None).expect("matching");
    let Some(device) = manager.live_devices().into_iter().next() else {
        return;
    };
    let transaction = HidTransaction::new(&device, HidTransactionDirection::Input).expect("transaction");
    if let Some(element) = device.elements().into_iter().next() {
        transaction.add_element(&element);
        assert!(transaction.contains_element(&element));
        transaction.remove_element(&element);
    }
    transaction.clear();
}