//! The trait implemented by console structures. use core::fmt; /// Trait allowing a structure to be used as a console. pub trait Console: Write {} /// Trait allowing to write to an object. pub trait Write { /// Write a single character. fn write_char(&self, c: char); /// Write a Rust format string. fn write_fmt(&self, args: fmt::Arguments) -> fmt::Result; /// Block until the last buffered character has been consumed. fn flush(&self); } /// A Dummy Console. /// /// The DummyConsole implement the [`Console`] trait, and do nothing. pub struct DummyConsole; impl Write for DummyConsole { fn write_char(&self, _c: char) {} fn write_fmt(&self, _args: fmt::Arguments) -> fmt::Result { Ok(()) } fn flush(&self) {} } impl Console for DummyConsole {}