]> git.bitcoin.ninja Git - rust-lightning/commitdiff
Avoid returning a reference to a u64.
authorMatt Corallo <git@bluematt.me>
Sun, 18 Sep 2022 13:55:08 +0000 (13:55 +0000)
committerMatt Corallo <git@bluematt.me>
Mon, 19 Sep 2022 15:22:07 +0000 (15:22 +0000)
In c353c3ed7c40e689a3b9fb6730c6dabbd3c92cc5 an accessor method was
added which returns an `Option<&u64>`. While this allows Rust to
return an 8-byte object, returning a reference to something
pointer-sized is a somewhat strange API.

Instead, we opt for a straight `Option<u64>`, which is sadly
somewhat larger on the stack, but is simpler and already supported
in the bindings generation.

lightning-invoice/src/payment.rs

index 05b12840179a629f661f61ea78a73fa751f20262..c7449acd2764085ac6ac250c9a07235b3a588019 100644 (file)
@@ -741,8 +741,8 @@ pub struct InFlightHtlcs(HashMap<(u64, bool), u64>);
 impl InFlightHtlcs {
        /// Returns liquidity in msat given the public key of the HTLC source, target, and short channel
        /// id.
-       pub fn used_liquidity_msat(&self, source: &NodeId, target: &NodeId, channel_scid: u64) -> Option<&u64> {
-               self.0.get(&(channel_scid, source < target))
+       pub fn used_liquidity_msat(&self, source: &NodeId, target: &NodeId, channel_scid: u64) -> Option<u64> {
+               self.0.get(&(channel_scid, source < target)).map(|v| *v)
        }
 }