From 8edc1327917cf826788a2eec38a0123aa1c275fe Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Sun, 18 Sep 2022 13:55:08 +0000 Subject: [PATCH] Avoid returning a reference to a u64. 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`, which is sadly somewhat larger on the stack, but is simpler and already supported in the bindings generation. --- lightning-invoice/src/payment.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lightning-invoice/src/payment.rs b/lightning-invoice/src/payment.rs index 05b128401..c7449acd2 100644 --- a/lightning-invoice/src/payment.rs +++ b/lightning-invoice/src/payment.rs @@ -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 { + self.0.get(&(channel_scid, source < target)).map(|v| *v) } } -- 2.39.5