@@ -143,6 +143,9 @@ macro_rules! encode_tlv_stream {
143143#[ macro_export]
144144macro_rules! _encode_tlv_stream {
145145 ( $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) => { {
146149 #[ allow( unused_imports) ]
147150 use $crate:: {
148151 ln:: msgs:: DecodeError ,
@@ -154,6 +157,10 @@ macro_rules! _encode_tlv_stream {
154157 $(
155158 $crate:: _encode_tlv!( $stream, $type, $field, $fieldty) ;
156159 ) *
160+ for tlv in $extra_tlvs {
161+ let ( typ, value) : & ( u64 , Vec <u8 >) = tlv;
162+ $crate:: _encode_tlv!( $stream, * typ, * value, required_vec) ;
163+ }
157164
158165 #[ allow( unused_mut, unused_variables, unused_assignments) ]
159166 #[ cfg( debug_assertions) ]
@@ -162,18 +169,8 @@ macro_rules! _encode_tlv_stream {
162169 $(
163170 $crate:: _check_encoded_tlv_order!( last_seen, $type, $fieldty) ;
164171 ) *
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;
177174 $crate:: _check_encoded_tlv_order!( last_seen, * typ, required_vec) ;
178175 }
179176 }
@@ -246,14 +243,13 @@ macro_rules! _encode_varint_length_prefixed_tlv {
246243 $crate:: _get_varint_length_prefixed_tlv_length!( len, $type, $field, $fieldty) ;
247244 ) *
248245 for tlv in $extra_tlvs {
249- let ( typ, value) : && ( u64 , Vec <u8 >) = tlv;
246+ let ( typ, value) : & ( u64 , Vec <u8 >) = tlv;
250247 $crate:: _get_varint_length_prefixed_tlv_length!( len, * typ, * value, required_vec) ;
251248 }
252249 len. 0
253250 } ;
254251 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) ;
257253 } } ;
258254}
259255
0 commit comments