]> git.bitcoin.ninja Git - rust-lightning/commitdiff
Implement `Readable` for `Offer`
authorElias Rohrer <dev@tnull.de>
Mon, 25 Mar 2024 13:04:57 +0000 (14:04 +0100)
committerElias Rohrer <dev@tnull.de>
Tue, 4 Jun 2024 07:44:18 +0000 (09:44 +0200)
When storing `Offer`s, it's useful for them to implement LDK's
deserialization trait.

lightning/src/offers/offer.rs

index 762bc1f3306555947f8a44aff9799547965753f5..db910b5e1bba361d977448bd6bd53a706cd92cab 100644 (file)
@@ -966,6 +966,13 @@ impl OfferContents {
        }
 }
 
+impl Readable for Offer {
+       fn read<R: io::Read>(reader: &mut R) -> Result<Self, DecodeError> {
+               let bytes: WithoutLength<Vec<u8>> = Readable::read(reader)?;
+               Self::try_from(bytes.0).map_err(|_| DecodeError::InvalidValue)
+       }
+}
+
 impl Writeable for Offer {
        fn write<W: Writer>(&self, writer: &mut W) -> Result<(), io::Error> {
                WithoutLength(&self.bytes).write(writer)