} fn store(self) -> Self::Value { let mut value = [0; 36]; self.consensus_encode(&mut value.as_mut_slice()).unwrap(); value } } pub(super) type SatPointValue = [u8; 44]; impl Entry for SatPoint { type Value = SatPointValue; fn load(value: Self::Value) -> Self { Decodable::consensus_decode(&mut io::Cursor::new(value)).unwrap() } fn store(self) -> Self::Value { let mut value = [0; 44]; self.consensus_encode(&mut value.as_mut_slice()).unwrap(); value } } pub(super) type SatRange = (u64, u64); impl Entry for SatRange { type Value = [u8; 11]; fn load([b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10]: Self::Value) -> Self { let raw_base = u64::from_le_bytes([b0, b1, b2, b3, b4, b5, b6, 0]); // 51 bit base let base = raw_base & ((1 << 51) - 1); let raw_delta = u64::from_le_bytes([b6, b7, b8, b9, b10, 0, 0, 0]); // 33 bit delta let delta = raw_delta >> 3; (base, base + delta) } fn store(self) -> Self::Value { let base = self.0;