pub trait UiSink {
// Required methods
fn write_stdout(&mut self, text: &str);
fn write_stderr(&mut self, text: &str);
}Expand description
Terminal-facing output sink for stdout/stderr emission.
Implementors should forward or buffer the supplied text exactly as received; higher layers already handle rendering, grouping, and newline decisions. Callers may write to stdout and stderr independently and can assume that empty writes are harmless.
§Examples
use osp_cli::app::UiSink;
#[derive(Default)]
struct CaptureSink {
stdout: String,
stderr: String,
}
impl UiSink for CaptureSink {
fn write_stdout(&mut self, text: &str) {
self.stdout.push_str(text);
}
fn write_stderr(&mut self, text: &str) {
self.stderr.push_str(text);
}
}
let mut sink = CaptureSink::default();
sink.write_stdout("ok");
sink.write_stderr("warn");
assert_eq!(sink.stdout, "ok");
assert_eq!(sink.stderr, "warn");Required Methods§
Sourcefn write_stdout(&mut self, text: &str)
fn write_stdout(&mut self, text: &str)
Writes text to the sink’s stdout channel.
Sourcefn write_stderr(&mut self, text: &str)
fn write_stderr(&mut self, text: &str)
Writes text to the sink’s stderr channel.