use core::fmt::{self, Write};
pub fn write_fmt(args: fmt::Arguments<'_>) -> usize {
if let Some(written) = crate::serial::emergency_write(args) {
return written;
}
let mut writer = PlatformEmergencyWriter::default();
let _ = fmt::write(&mut writer, args);
writer.written
}
#[derive(Default)]
struct PlatformEmergencyWriter {
written: usize,
}
impl Write for PlatformEmergencyWriter {
fn write_str(&mut self, text: &str) -> fmt::Result {
crate::hal::console::write_text_bytes(text.as_bytes());
self.written = self.written.saturating_add(text.len());
Ok(())
}
}