Crate evdev_rs_tokio

Crate evdev_rs_tokio 

Source
Expand description

Rust bindings to libevdev, a wrapper for evdev devices.

This library intends to provide a safe interface to the libevdev library. It will look for the library on the local system, and link to the installed copy.

§Examples

§Intializing a evdev device

use evdev_rs::Device;
use std::fs::File;

let file = File::open("/dev/input/event0").unwrap();
let mut d = Device::new_from_file(file).unwrap();

§Getting the next event

use evdev_rs::Device;
use std::fs::File;
use evdev_rs::ReadFlag;

let file = File::open("/dev/input/event0").unwrap();
let mut d = Device::new_from_file(file).unwrap();

loop {
    let ev = d.next_event(ReadFlag::NORMAL | ReadFlag::BLOCKING).map(|val| val.1);
    match ev {
        Ok(ev) => println!("Event: time {}.{}, ++++++++++++++++++++ {} +++++++++++++++",
                          ev.time.tv_sec,
                          ev.time.tv_usec,
                          ev.event_type().map(|ev_type| format!("{}", ev_type)).unwrap_or("".to_owned())),
        Err(e) => (),
    }
}

§Serialization

to use serialization, you muse enable the serde feature.

# Cargo.toml
[dependencies]
evdev-rs = { version = "0.4.0", features = ["serde"] }

Modules§

device
enums
logging
uinput
util

Structs§

AbsInfo
used by EVIOCGABS/EVIOCSABS ioctls
Device
Opaque struct representing an evdev device
DeviceId
InputEvent
The event structure itself
ReadFlag
TimeVal
UInputDevice
Opaque struct representing an evdev uinput device
UninitDevice
Opaque struct representing an evdev device with no backing file

Enums§

GrabMode
LedState
ReadStatus

Traits§

DeviceWrapper
Abstraction over structs which contain an inner *mut libevdev