pub struct ReadOnlyTextBuffer { chars: Vec, pointer: usize, } impl ReadOnlyTextBuffer { pub fn from_text(text: &str) -> Self { Self { chars: text.bytes().collect(), pointer: 0, } } pub fn read_byte(&mut self) -> u8 { let option = self.chars.get(self.pointer); self.pointer += 1; *option.unwrap_or(&0) } pub fn reset_pointer(&mut self) { self.pointer = 0; } }