diff options
Diffstat (limited to 'src/devices/system/read_only_text_buffer.rs')
-rw-r--r-- | src/devices/system/read_only_text_buffer.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/devices/system/read_only_text_buffer.rs b/src/devices/system/read_only_text_buffer.rs new file mode 100644 index 0000000..7c59025 --- /dev/null +++ b/src/devices/system/read_only_text_buffer.rs @@ -0,0 +1,23 @@ +pub struct ReadOnlyTextBuffer { + chars: Vec<u8>, + pointer: usize, +} + +impl ReadOnlyTextBuffer { + pub fn from_text(text: &str) -> Self { + Self { + chars: text.chars().map(|c| c as u32 as u8).collect(), + pointer: 0, + } + } + + pub fn read_byte(&mut self) -> u8 { + let byte = self.chars[self.pointer]; + self.pointer += 1; + return byte; + } + + pub fn reset_pointer(&mut self) { + self.pointer = 0; + } +} |