ckb_fixed_hash_core/
std_fmt.rs

1use crate::{H160, H256, H512, H520};
2
3macro_rules! impl_std_fmt {
4    ($name:ident, $bytes_size:expr) => {
5        impl ::std::fmt::Debug for $name {
6            #[inline]
7            fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
8                write!(f, stringify!($name))?;
9                write!(f, " ( [")?;
10                write!(f, " {:#04x}", self.0[0])?;
11                for chr in self.0[1..].iter() {
12                    write!(f, ", {:#04x}", chr)?;
13                }
14                write!(f, " ] )")
15            }
16        }
17        impl ::std::fmt::LowerHex for $name {
18            #[inline]
19            fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
20                let alternate = f.alternate();
21                if alternate {
22                    write!(f, "0x")?;
23                }
24                for x in self.0.iter() {
25                    write!(f, "{:02x}", x)?;
26                }
27                Ok(())
28            }
29        }
30        impl ::std::fmt::Display for $name {
31            #[inline]
32            fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
33                let alternate = f.alternate();
34                if alternate {
35                    write!(f, "0x")?;
36                }
37                for x in self.0.iter() {
38                    write!(f, "{:02x}", x)?;
39                }
40                Ok(())
41            }
42        }
43    };
44}
45
46impl_std_fmt!(H160, 20);
47impl_std_fmt!(H256, 32);
48impl_std_fmt!(H512, 64);
49impl_std_fmt!(H520, 65);