From 5cf20a142ef667b9664dd2a2dc3bb26c7562c9a0 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sun, 9 Jun 2019 06:53:24 -0400 Subject: pass input events through to the running process --- examples/cooked.rs | 19 +++++++++++++++++++ examples/raw.rs | 20 ++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 examples/cooked.rs create mode 100644 examples/raw.rs (limited to 'examples') diff --git a/examples/cooked.rs b/examples/cooked.rs new file mode 100644 index 0000000..cf0384c --- /dev/null +++ b/examples/cooked.rs @@ -0,0 +1,19 @@ +use std::io::Read; + +fn main() { + loop { + let stdin = std::io::stdin(); + let mut stdin = stdin.lock(); + let mut buf = [0; 1]; + let n = stdin.read(&mut buf).unwrap(); + if n > 0 { + eprint!("got {}\r\n", buf[0]); + if buf[0] == 4 { + break; + } + } else { + eprint!("got no bytes\r\n"); + break; + } + } +} diff --git a/examples/raw.rs b/examples/raw.rs new file mode 100644 index 0000000..5890a99 --- /dev/null +++ b/examples/raw.rs @@ -0,0 +1,20 @@ +use std::io::Read; + +fn main() { + let _screen = crossterm::RawScreen::into_raw_mode().unwrap(); + loop { + let stdin = std::io::stdin(); + let mut stdin = stdin.lock(); + let mut buf = [0; 1]; + let n = stdin.read(&mut buf).unwrap(); + if n > 0 { + eprint!("got {}\r\n", buf[0]); + if buf[0] == 4 { + break; + } + } else { + eprint!("got no bytes\r\n"); + break; + } + } +} -- cgit v1.2.3-54-g00ecf