use crate::{yield_console_data, ConsoleStream};
pub const fn stdout() -> ConsoleStream {
ConsoleStream::Stdout
}
pub const fn stderr() -> ConsoleStream {
ConsoleStream::Stderr
}
impl core::fmt::Write for ConsoleStream {
fn write_str(&mut self, text: &str) -> core::fmt::Result {
yield_console_data(*self, text);
Ok(())
}
}
#[macro_export]
macro_rules! print {
($($arg: tt)*) => {{
use ::core::fmt::Write;
let _ = ::core::write!($crate::stdout(), $($arg)*);
}};
}
#[macro_export]
macro_rules! println {
($($arg: tt)*) => {{
use ::core::fmt::Write;
let _ = ::core::writeln!($crate::stdout(), $($arg)*);
}};
}
#[macro_export]
macro_rules! eprint {
($($arg: tt)*) => {{
use ::core::fmt::Write;
let _ = ::core::write!($crate::stderr(), $($arg)*);
}};
}
#[macro_export]
macro_rules! eprintln {
($($arg: tt)*) => {{
use ::core::fmt::Write;
let _ = ::core::writeln!($crate::stderr(), $($arg)*);
}};
}