1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
pub use core::fmt::Write;
use nb::block;
pub struct Stdout<'p, T>(pub &'p mut T)
where
T: 'p;
impl<'p, T> Write for Stdout<'p, T>
where
T: embedded_hal::serial::Write<u8>,
{
fn write_str(&mut self, s: &str) -> ::core::fmt::Result {
for byte in s.as_bytes() {
if *byte == b'\n' {
let res = block!(self.0.write(b'\r'));
if res.is_err() {
return Err(::core::fmt::Error);
}
}
let res = block!(self.0.write(*byte));
if res.is_err() {
return Err(::core::fmt::Error);
}
}
Ok(())
}
}