diff options
Diffstat (limited to 'src/devices/stream.rs')
-rw-r--r-- | src/devices/stream.rs | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/src/devices/stream.rs b/src/devices/stream.rs deleted file mode 100644 index 532df58..0000000 --- a/src/devices/stream.rs +++ /dev/null @@ -1,53 +0,0 @@ -use std::io::{Read, Write}; -use std::io::{BufReader, BufWriter}; -use std::io::{Stdin, Stdout}; - -pub struct StreamDevice { - pub wake_flag: bool, - - pub input_control: bool, - pub output_control: bool, - - pub stdin: BufReader<Stdin>, - pub stdout: BufWriter<Stdout>, -} - -impl StreamDevice { - pub fn new() -> Self { - Self { - wake_flag: false, - - input_control: true, - output_control: true, - - stdin: BufReader::new(std::io::stdin()), - stdout: BufWriter::new(std::io::stdout()), - } - } - - pub fn flush_local(&mut self) { - self.stdout.flush().unwrap(); - } - - pub fn read_queue_len(&self) -> usize { - self.stdin.buffer().len() - } - - pub fn read_stdin(&mut self) -> u8 { - let mut buffer = [0; 1]; - match self.stdin.read_exact(&mut buffer) { - Ok(_) => buffer[0], - Err(_) => 0, - } - } - - pub fn write_stdout(&mut self, val: u8) { - self.stdout.write_all(&[val]).unwrap(); - } -} - -impl Drop for StreamDevice { - fn drop(&mut self) { - self.flush_local(); - } -} |