evdevil 0.4.1

Bindings to Linux' input device APIs: evdev and uinput
Documentation
//! Uses the [`evdevil::EventReader`] API to read and print device events.

use std::{env, io, process};

use evdevil::Evdev;

fn main() -> io::Result<()> {
    env_logger::init();
    let evdev = match &*env::args().skip(1).collect::<Vec<_>>() {
        [evdev] => Evdev::open(evdev)?,
        _ => {
            eprintln!("usage: {} <evdev-path>", env!("CARGO_CRATE_NAME"));
            process::exit(1);
        }
    };

    for event in evdev.into_reader()? {
        let event = event?;
        println!("{event:?}");
    }
    Ok(())
}