Skip to main content

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}