| use core::fmt::{Formatter, LowerHex, Result, UpperHex}; |
| |
| use crate::{Bytes, BytesMut}; |
| use super::BytesRef; |
| |
| impl LowerHex for BytesRef<'_> { |
| fn fmt(&self, f: &mut Formatter<'_>) -> Result { |
| for &b in self.0 { |
| write!(f, "{:02x}", b)?; |
| } |
| Ok(()) |
| } |
| } |
| |
| impl UpperHex for BytesRef<'_> { |
| fn fmt(&self, f: &mut Formatter<'_>) -> Result { |
| for &b in self.0 { |
| write!(f, "{:02X}", b)?; |
| } |
| Ok(()) |
| } |
| } |
| |
| macro_rules! hex_impl { |
| ($tr:ident, $ty:ty) => { |
| impl $tr for $ty { |
| fn fmt(&self, f: &mut Formatter<'_>) -> Result { |
| $tr::fmt(&BytesRef(self.as_ref()), f) |
| } |
| } |
| }; |
| } |
| |
| hex_impl!(LowerHex, Bytes); |
| hex_impl!(LowerHex, BytesMut); |
| hex_impl!(UpperHex, Bytes); |
| hex_impl!(UpperHex, BytesMut); |