summaryrefslogtreecommitdiff
path: root/src/devices/system
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/system')
-rw-r--r--src/devices/system/read_only_text_buffer.rs23
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;
+ }
+}