From c0598823335cfdc6deb5c48fe1ead8ecea18097e Mon Sep 17 00:00:00 2001 From: Nathan Reiner Date: Sat, 7 Dec 2024 17:17:22 +0100 Subject: add error type to iobuffer --- src/lua/iobuffer.rs | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) (limited to 'src/lua/iobuffer.rs') diff --git a/src/lua/iobuffer.rs b/src/lua/iobuffer.rs index 1150e0d..baab111 100644 --- a/src/lua/iobuffer.rs +++ b/src/lua/iobuffer.rs @@ -1,33 +1,38 @@ use std::sync::RwLock; +#[derive(Clone)] +pub enum BufferChunk { + StdOut(String), + StdErr(String), +} + pub struct IoBuffer { - buffer: String, + buffer: Vec, } impl IoBuffer { const fn new() -> Self { Self { - buffer: String::new(), + buffer: Vec::new(), } } - pub fn get(&self) -> String { + pub fn get(&self) -> Vec { self.buffer.clone() } - pub fn write(&mut self, value: S) + pub fn print(&mut self, value: S) where - S: AsRef + S: std::string::ToString { - self.buffer += value.as_ref(); + self.buffer.push(BufferChunk::StdOut(value.to_string())) } - pub fn writeln(&mut self, value: S) + pub fn error(&mut self, value: S) where - S: AsRef + S: std::string::ToString { - self.buffer += value.as_ref(); - self.buffer += "\n"; + self.buffer.push(BufferChunk::StdErr(value.to_string())) } } -- cgit v1.2.3-70-g09d2