7609c4666197ce3c91f685811b12ca0bc34f718a
[rust-lightning] / lightning / src / offers / payer.rs
1 // This file is Copyright its original authors, visible in version control
2 // history.
3 //
4 // This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
5 // or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
6 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
7 // You may not use this file except in accordance with one or both of these
8 // licenses.
9
10 //! Data structures and encoding for `invoice_request_metadata` records.
11
12 use crate::offers::signer::Metadata;
13 use crate::util::ser::WithoutLength;
14
15 use crate::prelude::*;
16
17 /// An unpredictable sequence of bytes typically containing information needed to derive
18 /// [`InvoiceRequest::payer_id`].
19 ///
20 /// [`InvoiceRequest::payer_id`]: crate::offers::invoice_request::InvoiceRequest::payer_id
21 #[derive(Clone, Debug)]
22 #[cfg_attr(test, derive(PartialEq))]
23 pub(super) struct PayerContents(pub Metadata);
24
25 tlv_stream!(PayerTlvStream, PayerTlvStreamRef, 0..1, {
26         (0, metadata: (Vec<u8>, WithoutLength)),
27 });