@@ -143,6 +143,9 @@ macro_rules! encode_tlv_stream {
143
143
#[ macro_export]
144
144
macro_rules! _encode_tlv_stream {
145
145
( $stream: expr, { $( ( $type: expr, $field: expr, $fieldty: tt) ) ,* $( , ) * } ) => { {
146
+ $crate:: _encode_tlv_stream!( $stream, { $( ( $type, $field, $fieldty) ) ,* } , & [ ] )
147
+ } } ;
148
+ ( $stream: expr, { $( ( $type: expr, $field: expr, $fieldty: tt) ) ,* $( , ) * } , $extra_tlvs: expr) => { {
146
149
#[ allow( unused_imports) ]
147
150
use $crate:: {
148
151
ln:: msgs:: DecodeError ,
@@ -154,6 +157,10 @@ macro_rules! _encode_tlv_stream {
154
157
$(
155
158
$crate:: _encode_tlv!( $stream, $type, $field, $fieldty) ;
156
159
) *
160
+ for tlv in $extra_tlvs {
161
+ let ( typ, value) : & ( u64 , Vec <u8 >) = tlv;
162
+ $crate:: _encode_tlv!( $stream, * typ, * value, required_vec) ;
163
+ }
157
164
158
165
#[ allow( unused_mut, unused_variables, unused_assignments) ]
159
166
#[ cfg( debug_assertions) ]
@@ -162,18 +169,8 @@ macro_rules! _encode_tlv_stream {
162
169
$(
163
170
$crate:: _check_encoded_tlv_order!( last_seen, $type, $fieldty) ;
164
171
) *
165
- }
166
- } } ;
167
- ( $stream: expr, $tlvs: expr) => { {
168
- for tlv in $tlvs {
169
- let ( typ, value) : &&( u64 , Vec <u8 >) = tlv;
170
- $crate:: _encode_tlv!( $stream, * typ, * value, required_vec) ;
171
- }
172
-
173
- #[ cfg( debug_assertions) ] {
174
- let mut last_seen: Option <u64 > = None ;
175
- for tlv in $tlvs {
176
- let ( typ, _) : &&( u64 , Vec <u8 >) = tlv;
172
+ for tlv in $extra_tlvs {
173
+ let ( typ, _) : & ( u64 , Vec <u8 >) = tlv;
177
174
$crate:: _check_encoded_tlv_order!( last_seen, * typ, required_vec) ;
178
175
}
179
176
}
@@ -246,14 +243,13 @@ macro_rules! _encode_varint_length_prefixed_tlv {
246
243
$crate:: _get_varint_length_prefixed_tlv_length!( len, $type, $field, $fieldty) ;
247
244
) *
248
245
for tlv in $extra_tlvs {
249
- let ( typ, value) : && ( u64 , Vec <u8 >) = tlv;
246
+ let ( typ, value) : & ( u64 , Vec <u8 >) = tlv;
250
247
$crate:: _get_varint_length_prefixed_tlv_length!( len, * typ, * value, required_vec) ;
251
248
}
252
249
len. 0
253
250
} ;
254
251
BigSize ( len as u64 ) . write( $stream) ?;
255
- $crate:: _encode_tlv_stream!( $stream, { $( ( $type, $field, $fieldty) ) ,* } ) ;
256
- $crate:: _encode_tlv_stream!( $stream, $extra_tlvs) ;
252
+ $crate:: _encode_tlv_stream!( $stream, { $( ( $type, $field, $fieldty) ) ,* } , $extra_tlvs) ;
257
253
} } ;
258
254
}
259
255
0 commit comments