Skip to content

Commit 7f47d67

Browse files
authored
Merge pull request #2965 from tnull/2024-03-impl-readable-writeable-offer-invoice-refund
Implement `Readable` for `Offer` and `Refund`
2 parents 993cd1e + fc14495 commit 7f47d67

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

lightning/src/offers/offer.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -966,6 +966,13 @@ impl OfferContents {
966966
}
967967
}
968968

969+
impl Readable for Offer {
970+
fn read<R: io::Read>(reader: &mut R) -> Result<Self, DecodeError> {
971+
let bytes: WithoutLength<Vec<u8>> = Readable::read(reader)?;
972+
Self::try_from(bytes.0).map_err(|_| DecodeError::InvalidValue)
973+
}
974+
}
975+
969976
impl Writeable for Offer {
970977
fn write<W: Writer>(&self, writer: &mut W) -> Result<(), io::Error> {
971978
WithoutLength(&self.bytes).write(writer)

lightning/src/offers/refund.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ use crate::offers::offer::{OfferTlvStream, OfferTlvStreamRef};
103103
use crate::offers::parse::{Bech32Encode, Bolt12ParseError, Bolt12SemanticError, ParsedMessage};
104104
use crate::offers::payer::{PayerContents, PayerTlvStream, PayerTlvStreamRef};
105105
use crate::offers::signer::{Metadata, MetadataMaterial, self};
106-
use crate::util::ser::{SeekReadable, WithoutLength, Writeable, Writer};
106+
use crate::util::ser::{SeekReadable, Readable, WithoutLength, Writeable, Writer};
107107
use crate::util::string::PrintableString;
108108

109109
#[cfg(not(c_bindings))]
@@ -769,6 +769,13 @@ impl RefundContents {
769769
}
770770
}
771771

772+
impl Readable for Refund {
773+
fn read<R: io::Read>(reader: &mut R) -> Result<Self, DecodeError> {
774+
let bytes: WithoutLength<Vec<u8>> = Readable::read(reader)?;
775+
Self::try_from(bytes.0).map_err(|_| DecodeError::InvalidValue)
776+
}
777+
}
778+
772779
impl Writeable for Refund {
773780
fn write<W: Writer>(&self, writer: &mut W) -> Result<(), io::Error> {
774781
WithoutLength(&self.bytes).write(writer)

0 commit comments

Comments
 (0)