diff options
Diffstat (limited to 'mingling/src/renderer/render_result.rs')
| -rw-r--r-- | mingling/src/renderer/render_result.rs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/mingling/src/renderer/render_result.rs b/mingling/src/renderer/render_result.rs new file mode 100644 index 0000000..73c38e7 --- /dev/null +++ b/mingling/src/renderer/render_result.rs @@ -0,0 +1,38 @@ +use std::{ + fmt::{Display, Formatter}, + ops::Deref, +}; + +#[derive(Default, Debug, PartialEq)] +pub struct RenderResult { + render_text: String, +} + +impl Display for RenderResult { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + writeln!(f, "{}", self.render_text.trim()) + } +} + +impl Deref for RenderResult { + type Target = str; + + fn deref(&self) -> &Self::Target { + &self.render_text + } +} + +impl RenderResult { + pub fn print(&mut self, text: &str) { + self.render_text.push_str(text); + } + + pub fn println(&mut self, text: &str) { + self.render_text.push_str(text); + self.render_text.push('\n'); + } + + pub fn clear(&mut self) { + self.render_text.clear(); + } +} |
