tempest-repl 0.0.1

TempestDB interactive REPL
Documentation
use std::io::{self, Write};

pub(super) struct RawOut<W: Write>(pub(super) W);

impl<W: Write> Write for RawOut<W> {
    fn write(&mut self, buf: &[u8]) -> io::Result<usize> {
        let mut remaining = buf;
        while let Some(pos) = remaining.iter().position(|&b| b == b'\n') {
            self.0.write_all(&remaining[..pos])?;
            self.0.write_all(b"\r\n")?;
            remaining = &remaining[pos + 1..];
        }
        self.0.write_all(remaining)?;
        Ok(buf.len())
    }

    fn flush(&mut self) -> io::Result<()> {
        self.0.flush()
    }
}