Skip to content

Commit 51f6195

Browse files
committed
f - remove Option from some Offer method return values
1 parent dc9684f commit 51f6195

File tree

1 file changed

+19
-15
lines changed

1 file changed

+19
-15
lines changed

lightning/src/offers/offer.rs

+19-15
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,9 @@ impl OfferBuilder {
8585
/// Use a different pubkey per offer to avoid correlating offers.
8686
pub fn new(description: String, signing_pubkey: PublicKey) -> Self {
8787
let offer = OfferContents {
88-
chains: None, metadata: None, amount: None, description, features: None,
89-
absolute_expiry: None, issuer: None, paths: None, quantity_min: None,
90-
quantity_max: None, signing_pubkey: Some(signing_pubkey),
88+
chains: None, metadata: None, amount: None, description,
89+
features: OfferFeatures::empty(), absolute_expiry: None, issuer: None, paths: None,
90+
quantity_min: None, quantity_max: None, signing_pubkey: Some(signing_pubkey),
9191
};
9292
OfferBuilder { offer }
9393
}
@@ -127,7 +127,7 @@ impl OfferBuilder {
127127
/// Successive calls to this method will override the previous setting.
128128
#[cfg(test)]
129129
pub fn features(mut self, features: OfferFeatures) -> Self {
130-
self.offer.features = Some(features);
130+
self.offer.features = features;
131131
self
132132
}
133133

@@ -348,13 +348,17 @@ impl OfferContents {
348348
),
349349
};
350350

351+
let features = {
352+
if self.features == OfferFeatures::empty() { None } else { Some(&self.features) }
353+
};
354+
351355
OfferTlvStreamRef {
352356
chains: self.chains.as_ref(),
353357
metadata: self.metadata.as_ref(),
354358
currency,
355359
amount,
356360
description: Some(&self.description),
357-
features: self.features.as_ref(),
361+
features,
358362
absolute_expiry: self.absolute_expiry.map(|duration| duration.as_secs()),
359363
paths: self.paths.as_ref(),
360364
issuer: self.issuer.as_ref(),
@@ -441,11 +445,11 @@ mod tests {
441445
assert_eq!(offer.metadata(), None);
442446
assert_eq!(offer.amount(), None);
443447
assert_eq!(offer.description(), "foo");
444-
assert_eq!(offer.features(), None);
448+
assert_eq!(offer.features(), &OfferFeatures::empty());
445449
assert_eq!(offer.absolute_expiry(), None);
446450
#[cfg(feature = "std")]
447451
assert!(!offer.is_expired());
448-
assert_eq!(offer.paths(), None);
452+
assert_eq!(offer.paths(), &[]);
449453
assert_eq!(offer.issuer(), None);
450454
assert_eq!(offer.quantity_min(), 1);
451455
assert_eq!(offer.quantity_max(), 1);
@@ -551,19 +555,19 @@ mod tests {
551555
#[test]
552556
fn builds_offer_with_features() {
553557
let offer = OfferBuilder::new("foo".into(), pubkey(42))
554-
.features(OfferFeatures::empty())
558+
.features(OfferFeatures::unknown())
555559
.build()
556560
.unwrap();
557-
assert_eq!(offer.features(), Some(&OfferFeatures::empty()));
558-
assert_eq!(offer.as_tlv_stream().features, Some(&OfferFeatures::empty()));
561+
assert_eq!(offer.features(), &OfferFeatures::unknown());
562+
assert_eq!(offer.as_tlv_stream().features, Some(&OfferFeatures::unknown()));
559563

560564
let offer = OfferBuilder::new("foo".into(), pubkey(42))
561565
.features(OfferFeatures::unknown())
562566
.features(OfferFeatures::empty())
563567
.build()
564568
.unwrap();
565-
assert_eq!(offer.features(), Some(&OfferFeatures::empty()));
566-
assert_eq!(offer.as_tlv_stream().features, Some(&OfferFeatures::empty()));
569+
assert_eq!(offer.features(), &OfferFeatures::empty());
570+
assert_eq!(offer.as_tlv_stream().features, None);
567571
}
568572

569573
#[test]
@@ -618,7 +622,7 @@ mod tests {
618622
.build()
619623
.unwrap();
620624
let tlv_stream = offer.as_tlv_stream();
621-
assert_eq!(offer.paths(), Some(&paths));
625+
assert_eq!(offer.paths(), paths.as_slice());
622626
assert_eq!(offer.signing_pubkey(), pubkey(42));
623627
assert_ne!(pubkey(42), pubkey(44));
624628
assert_eq!(tlv_stream.paths, Some(&paths));
@@ -631,15 +635,15 @@ mod tests {
631635
.issuer("bar".into())
632636
.build()
633637
.unwrap();
634-
assert_eq!(offer.issuer(), Some(&String::from("bar")));
638+
assert_eq!(offer.issuer(), Some("bar"));
635639
assert_eq!(offer.as_tlv_stream().issuer, Some(&String::from("bar")));
636640

637641
let offer = OfferBuilder::new("foo".into(), pubkey(42))
638642
.issuer("bar".into())
639643
.issuer("baz".into())
640644
.build()
641645
.unwrap();
642-
assert_eq!(offer.issuer(), Some(&String::from("baz")));
646+
assert_eq!(offer.issuer(), Some("baz"));
643647
assert_eq!(offer.as_tlv_stream().issuer, Some(&String::from("baz")));
644648
}
645649

0 commit comments

Comments
 (0)