uinput 0.1.3

Linux uinput wrapper.
Documentation

Build #2392519 2025-08-08 10:37:58

# rustc version rustc 1.91.0-nightly (2fd855fbf 2025-08-07)

# docs.rs version docsrs 0.6.0 (e18d034e 2025-07-29)

# build log [INFO] running `Command { std: "docker" "create" "-v" "/home/cratesfyi/workspace-builder/builds/uinput-0.1.3/target:/opt/rustwide/target:rw,Z" "-v" "/home/cratesfyi/workspace-builder/builds/uinput-0.1.3/source:/opt/rustwide/workdir:ro,Z" "-v" "/home/cratesfyi/workspace-builder/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/home/cratesfyi/workspace-builder/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "DOCS_RS=1" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "6442450944" "--cpus" "6" "--user" "1001:1001" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ae6f63d130afcfff7f91f5ba9fdb2a74d52830289c6a2ea2d23a94dcfb480a0d" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "rustdoc" "--lib" "-Zrustdoc-map" "--config" "build.rustdocflags=[\"--cfg\", \"docsrs\", \"-Z\", \"unstable-options\", \"--emit=invocation-specific\", \"--resource-suffix\", \"-20250807-1.91.0-nightly-2fd855fbf\", \"--static-root-path\", \"/-/rustdoc.static/\", \"--cap-lints\", \"warn\", \"--extern-html-root-takes-precedence\"]" "--offline" "-Zunstable-options" "--config=doc.extern-map.registries.crates-io=\"https://docs.rs/{pkg_name}/{version}/x86_64-unknown-linux-gnu\"" "-Zrustdoc-scrape-examples" "-j6" "--target" "x86_64-unknown-linux-gnu", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 1d67d2746458b48b1b7a35ea4446396a0066fb3a013648c03e45a153d9804898 [INFO] running `Command { std: "docker" "start" "-a" "1d67d2746458b48b1b7a35ea4446396a0066fb3a013648c03e45a153d9804898", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024 [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 26 | fd: try!(fcntl::open(path.as_ref(), fcntl::OFlag::O_WRONLY | fcntl::OFlag::O_NONBLOCK, stat::Mode::empty())), [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:38:3 [INFO] [stderr] | [INFO] [stderr] 38 | try!(enumerator.match_subsystem("misc")); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:39:3 [INFO] [stderr] | [INFO] [stderr] 39 | try!(enumerator.match_sysname("uinput")); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:35:24 [INFO] [stderr] | [INFO] [stderr] 35 | let context = try!(udev::Context::new()); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:36:24 [INFO] [stderr] | [INFO] [stderr] 36 | let mut enumerator = try!(udev::Enumerator::new(&context)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:41:16 [INFO] [stderr] | [INFO] [stderr] 41 | let device = try!(try!(enumerator.scan_devices()) [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:41:21 [INFO] [stderr] | [INFO] [stderr] 41 | let device = try!(try!(enumerator.scan_devices()) [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:44:17 [INFO] [stderr] | [INFO] [stderr] 44 | Builder::open(try!(device.devnode().ok_or(Error::NotFound))) [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:55:16 [INFO] [stderr] | [INFO] [stderr] 55 | let string = try!(CString::new(value.as_ref())); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:59:4 [INFO] [stderr] | [INFO] [stderr] 59 | try!(Err(nix::Error::from_errno(Errno::EINVAL))); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:98:5 [INFO] [stderr] | [INFO] [stderr] 98 | try!(self.event(Event::Keyboard(event::Keyboard::All))) [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:108:18 [INFO] [stderr] | [INFO] [stderr] 108 | builder = try!(builder.event(item)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:112:18 [INFO] [stderr] | [INFO] [stderr] 112 | builder = try!(builder.event(item)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:116:18 [INFO] [stderr] | [INFO] [stderr] 116 | builder = try!(builder.event(item)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:120:18 [INFO] [stderr] | [INFO] [stderr] 120 | builder = try!(builder.event(item)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:124:18 [INFO] [stderr] | [INFO] [stderr] 124 | builder = try!(builder.event(item)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:128:18 [INFO] [stderr] | [INFO] [stderr] 128 | builder = try!(builder.event(item)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:132:18 [INFO] [stderr] | [INFO] [stderr] 132 | builder = try!(builder.event(item)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:136:18 [INFO] [stderr] | [INFO] [stderr] 136 | builder = try!(builder.event(item)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:140:18 [INFO] [stderr] | [INFO] [stderr] 140 | builder = try!(builder.event(item)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:144:18 [INFO] [stderr] | [INFO] [stderr] 144 | builder = try!(builder.event(item)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:152:8 [INFO] [stderr] | [INFO] [stderr] 152 | try!(Errno::result(ui_set_evbit(self.fd, value.kind()))); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:153:8 [INFO] [stderr] | [INFO] [stderr] 153 | try!(Errno::result(ui_set_keybit(self.fd, value.code()))); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:167:18 [INFO] [stderr] | [INFO] [stderr] 167 | builder = try!(builder.event(item)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:171:18 [INFO] [stderr] | [INFO] [stderr] 171 | builder = try!(builder.event(item)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:175:18 [INFO] [stderr] | [INFO] [stderr] 175 | builder = try!(builder.event(item)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:179:18 [INFO] [stderr] | [INFO] [stderr] 179 | builder = try!(builder.event(item)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:183:18 [INFO] [stderr] | [INFO] [stderr] 183 | builder = try!(builder.event(item)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:187:18 [INFO] [stderr] | [INFO] [stderr] 187 | builder = try!(builder.event(item)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:191:18 [INFO] [stderr] | [INFO] [stderr] 191 | builder = try!(builder.event(item)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:195:18 [INFO] [stderr] | [INFO] [stderr] 195 | builder = try!(builder.event(item)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:203:8 [INFO] [stderr] | [INFO] [stderr] 203 | try!(Errno::result(ui_set_evbit(self.fd, value.kind()))); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:204:8 [INFO] [stderr] | [INFO] [stderr] 204 | try!(Errno::result(ui_set_keybit(self.fd, value.code()))); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:214:6 [INFO] [stderr] | [INFO] [stderr] 214 | try!(Errno::result(ui_set_evbit(self.fd, value.kind()))); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:215:6 [INFO] [stderr] | [INFO] [stderr] 215 | try!(Errno::result(ui_set_relbit(self.fd, value.code()))); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:223:6 [INFO] [stderr] | [INFO] [stderr] 223 | try!(Errno::result(ui_set_evbit(self.fd, value.kind()))); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:224:6 [INFO] [stderr] | [INFO] [stderr] 224 | try!(Errno::result(ui_set_absbit(self.fd, value.code()))); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:264:4 [INFO] [stderr] | [INFO] [stderr] 264 | try!(unistd::write(self.fd, slice::from_raw_parts(ptr, size))); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/builder.rs:265:4 [INFO] [stderr] | [INFO] [stderr] 265 | try!(Errno::result(ui_dev_create(self.fd))); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/device.rs:37:4 [INFO] [stderr] | [INFO] [stderr] 37 | try!(unistd::write(self.fd, slice::from_raw_parts(ptr, size))); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/device.rs:66:3 [INFO] [stderr] | [INFO] [stderr] 66 | try!(self.press(event)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/device/device.rs:67:3 [INFO] [stderr] | [INFO] [stderr] 67 | try!(self.release(event)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stderr] --> src/error.rs:47:29 [INFO] [stderr] | [INFO] [stderr] 47 | f.write_str(error::Error::description(self)) [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stderr] --> src/error.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | err.description(), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stderr] --> src/error.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | err.description(), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `uinput` (lib) generated 45 warnings [INFO] [stderr] Scraping uinput v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Documenting uinput v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.92s [INFO] [stderr] Generated /opt/rustwide/target/x86_64-unknown-linux-gnu/doc/uinput/index.html [INFO] running `Command { std: "docker" "inspect" "1d67d2746458b48b1b7a35ea4446396a0066fb3a013648c03e45a153d9804898", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1d67d2746458b48b1b7a35ea4446396a0066fb3a013648c03e45a153d9804898", kill_on_drop: false }` [INFO] [stdout] 1d67d2746458b48b1b7a35ea4446396a0066fb3a013648c03e45a153d9804898