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}