refactor(http): reduce complexity of determing an Encoder
This commit is contained in:
		| @@ -94,14 +94,11 @@ impl Http1Transaction for ServerTransaction { | |||||||
|             head.headers.set(header::Date(SystemTime::now().into())); |             head.headers.set(header::Date(SystemTime::now().into())); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         let mut is_chunked = true; |         let len = head.headers.get::<header::ContentLength>().map(|n| **n); | ||||||
|         let mut body = Encoder::chunked(); |  | ||||||
|         if let Some(cl) = head.headers.get::<header::ContentLength>() { |  | ||||||
|             body = Encoder::length(**cl); |  | ||||||
|             is_chunked = false |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         if is_chunked { |         let body = if let Some(len) = len { | ||||||
|  |             Encoder::length(len) | ||||||
|  |         } else { | ||||||
|             let encodings = match head.headers.get_mut::<header::TransferEncoding>() { |             let encodings = match head.headers.get_mut::<header::TransferEncoding>() { | ||||||
|                 Some(&mut header::TransferEncoding(ref mut encodings)) => { |                 Some(&mut header::TransferEncoding(ref mut encodings)) => { | ||||||
|                     if encodings.last() != Some(&header::Encoding::Chunked) { |                     if encodings.last() != Some(&header::Encoding::Chunked) { | ||||||
| @@ -115,7 +112,8 @@ impl Http1Transaction for ServerTransaction { | |||||||
|             if encodings { |             if encodings { | ||||||
|                 head.headers.set(header::TransferEncoding(vec![header::Encoding::Chunked])); |                 head.headers.set(header::TransferEncoding(vec![header::Encoding::Chunked])); | ||||||
|             } |             } | ||||||
|         } |             Encoder::chunked() | ||||||
|  |         }; | ||||||
|  |  | ||||||
|  |  | ||||||
|         let init_cap = 30 + head.headers.len() * AVERAGE_HEADER_SIZE; |         let init_cap = 30 + head.headers.len() * AVERAGE_HEADER_SIZE; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user