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
34
35
use core::fmt;
#[derive(Copy, Clone, Debug, Eq, PartialEq)]
pub struct HexDisplay<'a>(pub &'a [u8]);
impl fmt::Display for HexDisplay<'_> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{:X}", self)
}
}
impl fmt::UpperHex for HexDisplay<'_> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let mut hex = [0u8; 2];
for &byte in self.0 {
f.write_str(crate::upper::encode_str(&[byte], &mut hex)?)?;
}
Ok(())
}
}
impl fmt::LowerHex for HexDisplay<'_> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let mut hex = [0u8; 2];
for &byte in self.0 {
f.write_str(crate::lower::encode_str(&[byte], &mut hex)?)?;
}
Ok(())
}
}