rsql_formatters/writers/
stdout.rs1use crate::writers::writer::Writer;
2use std::fmt::Display;
3use std::io::{Result, Write, stdout};
4
5#[derive(Debug, Default)]
6pub struct StdoutWriter;
7
8impl Write for StdoutWriter {
9 fn write(&mut self, buf: &[u8]) -> Result<usize> {
10 stdout().write(buf)
11 }
12
13 fn flush(&mut self) -> Result<()> {
14 stdout().flush()
15 }
16}
17
18impl Display for StdoutWriter {
19 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
20 write!(f, "stdout")
21 }
22}
23
24impl Writer for StdoutWriter {}
25
26#[cfg(test)]
27mod tests {
28 use super::*;
29
30 #[test]
31 fn test_writer() -> anyhow::Result<()> {
32 let mut writer = StdoutWriter;
33 writer.write_all(b"Hello, world!")?;
34 writer.flush()?;
35 assert_eq!(writer.to_string(), "stdout");
36 Ok(())
37 }
38}