@@ -107,13 +107,14 @@ use alloc::collections::{btree_map, BTreeMap};
107107use crate::io;
108108use crate::prelude::*;
109109use core::{cmp, mem};
110+ use core::borrow::Borrow;
110111use core::cell::RefCell;
111112use crate::io::Read;
112113use crate::sync::{Arc, Mutex, RwLock, RwLockReadGuard, FairRwLock, LockTestExt, LockHeldState};
113114use core::sync::atomic::{AtomicUsize, AtomicBool, Ordering};
114115use core::time::Duration;
115116use core::ops::Deref;
116-
117+ use bitcoin::hex::impl_fmt_traits;
117118// Re-export this for use in the public API.
118119pub use crate::ln::outbound_payment::{Bolt12PaymentError, PaymentSendFailure, ProbeSendFailure, Retry, RetryableSendFailure, RecipientOnionFields};
119120use crate::ln::script::ShutdownScript;
@@ -468,7 +469,7 @@ impl Verification for PaymentHash {
468469/// a payment and ensure idempotency in LDK.
469470///
470471/// This is not exported to bindings users as we just use [u8; 32] directly
471- #[derive(Hash, Copy, Clone, PartialEq, Eq, Debug )]
472+ #[derive(Hash, Copy, Clone, PartialEq, Eq)]
472473pub struct PaymentId(pub [u8; Self::LENGTH]);
473474
474475impl PaymentId {
@@ -528,6 +529,18 @@ impl PaymentId {
528529 }
529530}
530531
532+ impl Borrow<[u8]> for PaymentId {
533+ fn borrow(&self) -> &[u8] {
534+ &self.0[..]
535+ }
536+ }
537+
538+ impl_fmt_traits! {
539+ impl fmt_traits for PaymentId {
540+ const LENGTH: usize = 32;
541+ }
542+ }
543+
531544impl Writeable for PaymentId {
532545 fn write<W: Writer>(&self, w: &mut W) -> Result<(), io::Error> {
533546 self.0.write(w)
@@ -541,12 +554,6 @@ impl Readable for PaymentId {
541554 }
542555}
543556
544- impl core::fmt::Display for PaymentId {
545- fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
546- crate::util::logger::DebugBytes(&self.0).fmt(f)
547- }
548- }
549-
550557/// An identifier used to uniquely identify an intercepted HTLC to LDK.
551558///
552559/// This is not exported to bindings users as we just use [u8; 32] directly
0 commit comments