+impl<T: sealed::PaymentSecret> Features<T> {
+ #[allow(dead_code)]
+ // Note that we never need to test this since what really matters is the invoice - iff the
+ // invoice provides a payment_secret, we assume that we can use it (ie that the recipient
+ // supports payment_secret).
+ pub(crate) fn payment_secret(&self) -> bool {
+ self.flags.len() > 1 && (self.flags[1] & (3 << (14-8))) != 0
+ }
+}
+
+impl<T: sealed::BasicMPP> Features<T> {
+ // We currently never test for this since we don't actually *generate* multipath routes.
+ #[allow(dead_code)]
+ pub(crate) fn basic_mpp(&self) -> bool {
+ self.flags.len() > 2 && (self.flags[2] & (3 << (16-8*2))) != 0
+ }
+}
+