riscv_emu_rust/
default_terminal.rs1use terminal::Terminal;
2
3pub struct DefaultTerminal {
5 input_data: Vec<u8>,
6 output_data: Vec<u8>
7}
8
9impl DefaultTerminal {
10 pub fn new() -> Self {
11 DefaultTerminal {
12 input_data: vec![],
13 output_data: vec![]
14 }
15 }
16}
17
18impl Terminal for DefaultTerminal {
19 fn put_byte(&mut self, value: u8) {
20 self.output_data.push(value);
21 }
22
23 fn get_input(&mut self) -> u8 {
24 match self.input_data.len() > 0 {
25 true => self.input_data.remove(0),
26 false => 0
27 }
28 }
29
30 fn put_input(&mut self, value: u8) {
31 self.input_data.push(value);
32 }
33
34 fn get_output(&mut self) -> u8 {
35 match self.output_data.len() > 0 {
36 true => self.output_data.remove(0),
37 false => 0
38 }
39 }
40}