crossterm
crossterm copied to clipboard
Cannot build crossterm 28.1 with use-dev-tty + event-stream features
When enabling both use-dev-tty feature and event-stream feature, latest crossterm 28.1 fails to build. This is a complete example of how to reproduce the build error:
~ ❯ cargo init crosstermtest && cd crosstermtest
Creating binary (application) package
note: see more `Cargo.toml` keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
~/crosstermtest master* ❯ cargo add crossterm --features use-dev-tty,event-stream
Updating crates.io index
Adding crossterm v0.28.1 to dependencies
Features:
+ bracketed-paste
+ event-stream
+ events
+ filedescriptor
+ use-dev-tty
+ windows
- libc
- serde
Updating crates.io index
Locking 44 packages to latest compatible versions
Adding hermit-abi v0.3.9 (latest: v0.4.0)
Adding linux-raw-sys v0.4.14 (latest: v0.6.5)
Adding wasi v0.11.0+wasi-snapshot-preview1 (latest: v0.13.3+wasi-0.2.2)
Adding windows-sys v0.52.0 (latest: v0.59.0)
~/crosstermtest master* ❯ cat Cargo.toml | grep crossterm
name = "crosstermtest"
crossterm = { version = "0.28.1", features = ["use-dev-tty", "event-stream"] }
~/crosstermtest master* ❯ cargo build
Compiling libc v0.2.159
Compiling proc-macro2 v1.0.87
... (cut)
Compiling filedescriptor v0.8.2
Compiling crossterm v0.28.1
error[E0599]: no variant or associated item named `new` found for enum `FileDesc` in the current scope
--> /home/da/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossterm-0.28.1/src/event/source/unix/tty.rs:188:36
|
188 | let fd = FileDesc::new(self.wake_pipe.receiver.as_raw_fd(), false);
| ^^^ variant or associated item not found in `FileDesc<'_>`
|
::: /home/da/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossterm-0.28.1/src/terminal/sys/file_descriptor.rs:30:1
|
30 | pub enum FileDesc<'a> {
| --------------------- variant or associated item `new` not found for this enum
|
= help: items from traits can only be used if the trait is implemented and in scope
= note: the following trait defines an item `new`, perhaps you need to implement it:
candidate #1: `parking_lot_core::thread_parker::ThreadParkerT`
For more information about this error, try `rustc --explain E0599`.
error: could not compile `crossterm` (lib) due to 1 previous error