File tree Expand file tree Collapse file tree 1 file changed +23
-24
lines changed
Expand file tree Collapse file tree 1 file changed +23
-24
lines changed Original file line number Diff line number Diff line change 1- use std:: cmp:: Ordering ;
2-
31use body_plz:: variants:: Body ;
42use bytes:: BytesMut ;
53use header_plz:: body_headers:: encoding_info:: EncodingInfo ;
@@ -146,28 +144,29 @@ where
146144 {
147145 decode_struct. body = partial_body. split ( ) ;
148146 decode_struct. extra_body = None ;
149- for einfo in encoding_info. iter ( ) . rev ( ) {
150- match einfo. header_index . cmp ( & header_index) {
151- Ordering :: Less | Ordering :: Equal => {
152- let last_failed = einfo
153- . encodings ( )
154- . iter ( )
155- . rev ( )
156- . nth ( compression_index)
157- . unwrap ( ) ;
158- decode_struct
159- . message
160- . truncate_header_value_on_position (
161- einfo. header_index ,
162- last_failed,
163- ) ;
164- break ;
165- }
166- Ordering :: Greater => {
167- decode_struct
168- . message
169- . remove_header_on_position ( einfo. header_index ) ;
170- }
147+ dbg ! ( & header_index) ;
148+ dbg ! ( & compression_index) ;
149+ for ( index, einfo) in encoding_info. iter ( ) . rev ( ) . enumerate ( ) {
150+ if index > header_index {
151+ decode_struct
152+ . message
153+ . remove_header_on_position ( einfo. header_index ) ;
154+ } else {
155+ let iter = einfo
156+ . encodings ( )
157+ . iter ( )
158+ . rev ( )
159+ . skip ( compression_index)
160+ . rev ( )
161+ . map ( |e| e. as_ref ( ) ) ;
162+ decode_struct
163+ . message
164+ . header_map_as_mut ( )
165+ . update_header_multiple_values_on_position (
166+ einfo. header_index ,
167+ iter,
168+ ) ;
169+ break ;
171170 }
172171 }
173172 }
You can’t perform that action at this time.
0 commit comments