Minimize reads to counterparty_claimable_outpoints
[rust-lightning] / lightning / src / blinded_path / mod.rs
index 3b4eac883646da74c7aa886066632840b622894d..29caafa4a4fc3ef61bf524de1469c4edaba89f5e 100644 (file)
@@ -14,6 +14,7 @@ pub(crate) mod message;
 pub(crate) mod utils;
 
 use bitcoin::secp256k1::{self, PublicKey, Secp256k1, SecretKey};
+use core::ops::Deref;
 
 use crate::ln::msgs::DecodeError;
 use crate::offers::invoice::BlindedPayInfo;
@@ -27,7 +28,7 @@ use crate::prelude::*;
 /// The next hop to forward an onion message along its path.
 ///
 /// Note that payment blinded paths always specify their next hop using an explicit node id.
-#[derive(Debug)]
+#[derive(Clone, Debug, Hash, PartialEq, Eq)]
 pub enum NextMessageHop {
        /// The node id of the next hop.
        NodeId(PublicKey),
@@ -100,6 +101,11 @@ impl NodeIdLookUp for EmptyNodeIdLookUp {
        }
 }
 
+impl Deref for EmptyNodeIdLookUp {
+       type Target = EmptyNodeIdLookUp;
+       fn deref(&self) -> &Self { self }
+}
+
 /// An encrypted payload and node id corresponding to a hop in a payment or onion message path, to
 /// be encoded in the sender's onion packet. These hops cannot be identified by outside observers
 /// and thus can be used to hide the identity of the recipient.