turtle_build/infrastructure/console.rs
1mod error;
2#[cfg(test)]
3mod fake;
4mod os;
5
6#[cfg(test)]
7pub use self::fake::FakeConsole;
8pub use self::{error::ConsoleError, os::OsConsole};
9use async_trait::async_trait;
10
11/// A console.
12#[async_trait]
13pub trait Console {
14 /// Writes bytes to standard output.
15 async fn write_stdout(&mut self, buffer: &[u8]) -> Result<(), ConsoleError>;
16 /// Writes bytes to standard error.
17 async fn write_stderr(&mut self, buffer: &[u8]) -> Result<(), ConsoleError>;
18 /// Flushes standard output and error.
19 async fn flush(&mut self) -> Result<(), ConsoleError>;
20}