1use core::fmt::{self, Write};
2
3pub struct Stdout;
4
5impl Write for Stdout {
6 fn write_str(&mut self, string: &str) -> Result<(), fmt::Error> {
7 let st = crate::system_table();
8
9 for c in string.chars() {
10 let _ = (st.ConsoleOut.OutputString)(st.ConsoleOut, [c as u16, 0].as_ptr());
11 if c == '\n' {
12 let _ = (st.ConsoleOut.OutputString)(st.ConsoleOut, ['\r' as u16, 0].as_ptr());
13 }
14 }
15
16 Ok(())
17 }
18}
19
20pub fn _print(args: fmt::Arguments) {
21 Stdout.write_fmt(args).unwrap();
22}