Skip to main content

ralph_workflow/logger/
logger_wrapper.rs

1use crate::logger::Logger;
2
3pub struct LoggerIoWrapper {
4    logger: Logger,
5}
6
7impl LoggerIoWrapper {
8    pub fn new(logger: Logger) -> Self {
9        Self { logger }
10    }
11
12    pub fn logger(&self) -> &Logger {
13        &self.logger
14    }
15
16    pub fn into_inner(self) -> Logger {
17        self.logger
18    }
19}
20
21impl std::io::Write for LoggerIoWrapper {
22    fn write(&mut self, buf: &[u8]) -> std::io::Result<usize> {
23        crate::logger::runtime::stdout_write(buf)
24    }
25
26    fn flush(&mut self) -> std::io::Result<()> {
27        crate::logger::runtime::stdout_flush()
28    }
29}
30
31impl crate::json_parser::printer::Printable for LoggerIoWrapper {
32    fn is_terminal(&self) -> bool {
33        crate::logger::runtime::stdout_is_terminal()
34    }
35}