X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning-invoice%2Fsrc%2Fser.rs;h=0dca180cab370a79e9358b89d7f1e1d2e51a8c95;hb=2afbdf5d1c1b531b08950ddca9143450ba458245;hp=f5742289118ba1e21382ad899770d9fb028831ce;hpb=828c7767463116705559dee367778b4f677476c6;p=rust-lightning diff --git a/lightning-invoice/src/ser.rs b/lightning-invoice/src/ser.rs index f5742289..0dca180c 100644 --- a/lightning-invoice/src/ser.rs +++ b/lightning-invoice/src/ser.rs @@ -47,7 +47,7 @@ impl<'a, W: WriteBase32> BytesToBase32<'a, W> { self.writer.write_u5( u5::try_from_u8((self.buffer & 0b11111000) >> 3 ).expect("<32") )?; - self.buffer = self.buffer << 5; + self.buffer <<= 5; self.buffer_bits -= 5; } @@ -58,7 +58,7 @@ impl<'a, W: WriteBase32> BytesToBase32<'a, W> { self.writer.write_u5(u5::try_from_u8(from_buffer | from_byte).expect("<32"))?; self.buffer = byte << (5 - self.buffer_bits); - self.buffer_bits = 3 + self.buffer_bits; + self.buffer_bits += 3; Ok(()) } @@ -75,7 +75,7 @@ impl<'a, W: WriteBase32> BytesToBase32<'a, W> { self.writer.write_u5( u5::try_from_u8((self.buffer & 0b11111000) >> 3).expect("<32") )?; - self.buffer = self.buffer << 5; + self.buffer <<= 5; self.buffer_bits -= 5; } @@ -124,7 +124,7 @@ impl Display for SignedRawInvoice { } } -/// (C-not exported) +/// This is not exported to bindings users impl Display for RawHrp { fn fmt(&self, f: &mut Formatter) -> Result<(), fmt::Error> { let amount = match self.raw_amount { @@ -329,7 +329,7 @@ impl ToBase32 for Fallback { fn write_base32(&self, writer: &mut W) -> Result<(), ::Err> { match *self { Fallback::SegWitProgram {version: v, program: ref p} => { - writer.write_u5(v)?; + writer.write_u5(Into::::into(v))?; p.write_base32(writer) }, Fallback::PubKeyHash(ref hash) => { @@ -446,6 +446,9 @@ impl ToBase32 for TaggedField { TaggedField::PaymentSecret(ref payment_secret) => { write_tagged_field(writer, constants::TAG_PAYMENT_SECRET, payment_secret) }, + TaggedField::PaymentMetadata(ref payment_metadata) => { + write_tagged_field(writer, constants::TAG_PAYMENT_METADATA, payment_metadata) + }, TaggedField::Features(ref features) => { write_tagged_field(writer, constants::TAG_FEATURES, features) },