| use core::fmt; |
| |
| /// `core::fmt` presenter for binary data encoded as hexadecimal (Base16). |
| #[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(()) |
| } |
| } |