ckb_fixed_hash_core/
std_convert.rs1use crate::{H160, H256, H512, H520};
2
3macro_rules! impl_std_convert {
4 ($name:ident, $bytes_size:expr) => {
5 impl ::std::convert::AsRef<[u8]> for $name {
6 #[inline]
7 fn as_ref(&self) -> &[u8] {
8 &self.0[..]
9 }
10 }
11 impl ::std::convert::AsMut<[u8]> for $name {
12 #[inline]
13 fn as_mut(&mut self) -> &mut [u8] {
14 &mut self.0[..]
15 }
16 }
17 impl ::std::convert::From<[u8; $bytes_size]> for $name {
18 #[inline]
19 fn from(bytes: [u8; $bytes_size]) -> Self {
20 $name(bytes)
21 }
22 }
23 impl ::std::convert::From<$name> for [u8; $bytes_size] {
24 #[inline]
25 fn from(hash: $name) -> Self {
26 hash.0
27 }
28 }
29 };
30}
31
32impl_std_convert!(H160, 20);
33impl_std_convert!(H256, 32);
34impl_std_convert!(H512, 64);
35impl_std_convert!(H520, 65);