use super::*; #[derive(Debug, PartialEq, Copy, Clone, Eq, PartialOrd, Ord, Default)] pub struct SatPoint { pub outpoint: OutPoint, pub offset: u64, } impl Display for SatPoint { fn fmt(&self, f: &mut Formatter) -> fmt::Result { write!(f, "{}:{}", self.outpoint, self.offset) } } impl Encodable for SatPoint { fn consensus_encode(&self, s: &mut S) -> Result { let len = self.outpoint.consensus_encode(s)?; Ok(len + self.offset.consensus_encode(s)?) } } impl Decodable for SatPoint { fn consensus_decode( d: &mut D, ) -> Result { Ok(SatPoint { outpoint: Decodable::consensus_decode(d)?, offset: Decodable::consensus_decode(d)?, }) } } impl Serialize for SatPoint { fn serialize(&self, serializer: S) -> Result where S: Serializer, { serializer.collect_str(self) } } impl<'de> Deserialize<'de> for SatPoint { fn deserialize(deserializer: D) -> Result