Mais traits

Derivamos o trait Debug. Seria Ăștil implementar alguns traits a mais tambĂ©m.

use core::fmt::{self, Write};

impl Write for Uart {
    fn write_str(&mut self, s: &str) -> fmt::Result {
        for c in s.as_bytes() {
            self.write_byte(*c);
        }
        Ok(())
    }
}

// Seguro porque ele contém apenas um ponteiro para memória de dispositivo, que pode ser
// acessado de qualquer contexto.
unsafe impl Send for Uart {}
  • A implementação de Write nos permite usar os macros write! e writeln! com nosso tipo Uart.
  • Execute o exemplo no QEMU com make qemu_minimal em src/bare-metal/aps/examples.