use std::io::{Read, Write, Stdin, Stdout}; pub struct StreamDevice { pub wake_flag: bool, pub input_control: bool, pub output_control: bool, pub read_queue: Vec, pub stdin: Stdin, pub stdout: Stdout, } impl StreamDevice { pub fn new() -> Self { Self { wake_flag: false, input_control: true, output_control: true, read_queue: Vec::with_capacity(256), stdin: std::io::stdin(), stdout: std::io::stdout(), } } // pub fn fetch_stdin(&mut self) { // match self.stdin.read(&mut self.read_queue) { // Ok() => (), // Err() => (), // } // } 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(); } }