Skip to content

Commit dde22ef

Browse files
committed
Revert "Add is_* and as_* methods to the event enums (crossterm-rs#949)"
This reverts commit e063091.
1 parent 9e19b50 commit dde22ef

File tree

5 files changed

+55
-487
lines changed

5 files changed

+55
-487
lines changed

Cargo.lock

Lines changed: 0 additions & 37 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ use-dev-tty = ["filedescriptor", "rustix/process"]
5151

5252
[dependencies]
5353
bitflags = { version = "2.3" }
54-
derive_more = { version = "1.0.0", features = ["is_variant"] }
5554
document-features = "0.2.10"
5655
futures-core = { version = "0.3", optional = true, default-features = false }
5756
parking_lot = "0.12"

examples/event-match-modifiers.rs

Lines changed: 34 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -4,42 +4,43 @@
44
55
use crossterm::event::{Event, KeyCode, KeyEvent, KeyModifiers};
66

7-
fn match_event(event: Event) {
8-
if let Some(key) = event.as_key_press_event() {
9-
match key {
10-
KeyEvent {
11-
modifiers: KeyModifiers::CONTROL,
12-
code,
13-
..
14-
} => {
15-
println!("Control + {:?}", code);
16-
}
17-
KeyEvent {
18-
modifiers: KeyModifiers::SHIFT,
19-
code,
20-
..
21-
} => {
22-
println!("Shift + {:?}", code);
23-
}
24-
KeyEvent {
25-
modifiers: KeyModifiers::ALT,
26-
code,
27-
..
28-
} => {
29-
println!("Alt + {:?}", code);
30-
}
7+
fn match_event(read_event: Event) {
8+
match read_event {
9+
// Match one one modifier:
10+
Event::Key(KeyEvent {
11+
modifiers: KeyModifiers::CONTROL,
12+
code,
13+
..
14+
}) => {
15+
println!("Control + {:?}", code);
16+
}
17+
Event::Key(KeyEvent {
18+
modifiers: KeyModifiers::SHIFT,
19+
code,
20+
..
21+
}) => {
22+
println!("Shift + {:?}", code);
23+
}
24+
Event::Key(KeyEvent {
25+
modifiers: KeyModifiers::ALT,
26+
code,
27+
..
28+
}) => {
29+
println!("Alt + {:?}", code);
30+
}
3131

32-
// Match on multiple modifiers:
33-
KeyEvent {
34-
code, modifiers, ..
35-
} => {
36-
if modifiers == (KeyModifiers::ALT | KeyModifiers::SHIFT) {
37-
println!("Alt + Shift {:?}", code);
38-
} else {
39-
println!("({:?}) with key: {:?}", modifiers, code)
40-
}
32+
// Match on multiple modifiers:
33+
Event::Key(KeyEvent {
34+
code, modifiers, ..
35+
}) => {
36+
if modifiers == (KeyModifiers::ALT | KeyModifiers::SHIFT) {
37+
println!("Alt + Shift {:?}", code);
38+
} else {
39+
println!("({:?}) with key: {:?}", modifiers, code)
4140
}
4241
}
42+
43+
_ => {}
4344
}
4445
}
4546

examples/key-display.rs

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
88
use std::io;
99

10-
use crossterm::event::KeyModifiers;
10+
use crossterm::event::{KeyEventKind, KeyModifiers};
1111
use crossterm::{
12-
event::{read, KeyCode},
12+
event::{read, Event, KeyCode},
1313
terminal::{disable_raw_mode, enable_raw_mode},
1414
};
1515

@@ -29,17 +29,20 @@ fn main() -> io::Result<()> {
2929
}
3030

3131
fn print_events() -> io::Result<()> {
32-
while let Ok(event) = read() {
33-
let Some(event) = event.as_key_press_event() else {
34-
continue;
35-
};
36-
let modifier = match event.modifiers {
37-
KeyModifiers::NONE => "".to_string(),
38-
_ => format!("{:}+", event.modifiers),
39-
};
40-
println!("Key pressed: {modifier}{code}\r", code = event.code);
41-
if event.code == KeyCode::Esc {
42-
break;
32+
loop {
33+
let event = read()?;
34+
match event {
35+
Event::Key(event) if event.kind == KeyEventKind::Press => {
36+
print!("Key pressed: ");
37+
if event.modifiers != KeyModifiers::NONE {
38+
print!("{}+", event.modifiers);
39+
}
40+
println!("{}\r", event.code);
41+
if event.code == KeyCode::Esc {
42+
break;
43+
}
44+
}
45+
_ => {}
4346
}
4447
}
4548
Ok(())

0 commit comments

Comments
 (0)