From 58b305b9f6d13007d2ea62775054c95177f81092 Mon Sep 17 00:00:00 2001 From: Nathan Reiner Date: Thu, 25 Jul 2024 00:40:37 +0200 Subject: first sketch --- src/lua/iobuffer.rs | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/lua/iobuffer.rs (limited to 'src/lua/iobuffer.rs') diff --git a/src/lua/iobuffer.rs b/src/lua/iobuffer.rs new file mode 100644 index 0000000..1150e0d --- /dev/null +++ b/src/lua/iobuffer.rs @@ -0,0 +1,38 @@ +use std::sync::RwLock; + +pub struct IoBuffer { + buffer: String, +} + +impl IoBuffer { + const fn new() -> Self { + Self { + buffer: String::new(), + } + } + + pub fn get(&self) -> String { + self.buffer.clone() + } + + pub fn write(&mut self, value: S) + where + S: AsRef + { + self.buffer += value.as_ref(); + } + + pub fn writeln(&mut self, value: S) + where + S: AsRef + { + self.buffer += value.as_ref(); + self.buffer += "\n"; + } +} + +static STDOUT_BUFFER: RwLock = RwLock::new(IoBuffer::new()); + +pub fn iobuffer() -> &'static RwLock { + &STDOUT_BUFFER +} -- cgit v1.2.3-70-g09d2