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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
use crate::{H160, H256, H512, H520}; macro_rules! impl_std_fmt { ($name:ident, $bytes_size:expr) => { impl ::std::fmt::Debug for $name { #[inline] fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { let alternate = f.alternate(); write!(f, stringify!($name))?; write!(f, " ( [")?; if alternate { writeln!(f)?; for chr in self.0.iter() { writeln!(f, " {:#04x},", chr)?; } writeln!(f, "]") } else { write!(f, " {:#04x}", self.0[0])?; for chr in self.0[1..].iter() { write!(f, ", {:#04x}", chr)?; } write!(f, " ] )") } } } impl ::std::fmt::LowerHex for $name { #[inline] fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { let alternate = f.alternate(); if alternate { write!(f, "0x")?; } for x in self.0.iter() { write!(f, "{:02x}", x)?; } Ok(()) } } impl ::std::fmt::Display for $name { #[inline] fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { let alternate = f.alternate(); if alternate { write!(f, "0x")?; } for x in self.0.iter() { write!(f, "{:02x}", x)?; } Ok(()) } } }; } impl_std_fmt!(H160, 20); impl_std_fmt!(H256, 32); impl_std_fmt!(H512, 64); impl_std_fmt!(H520, 65);