osiris/uapi/
print.rs

1use core::fmt::{self, Write};
2
3use hal::Machinelike;
4
5#[macro_export]
6macro_rules! uprintln {
7    ($($arg:tt)*) => ({
8        use core::fmt::Write;
9        use osiris::uapi::print::Printer;
10
11        let mut printer = Printer;
12        printer.write_fmt(format_args!($($arg)*)).unwrap();
13        printer.write_str("\n").unwrap();
14    });
15}
16
17pub struct Printer;
18
19impl Write for Printer {
20    fn write_str(&mut self, s: &str) -> fmt::Result {
21        hal::Machine::print(s).map_err(|_| fmt::Error)?;
22        Ok(())
23    }
24}