Make headers method on WASM client for compatibility with async_impl (#991)
The replace_headers method had to be moved since the async_impl module is not compiled while compiling to wasm. This caused the replace_headers method to be unavailable. fast_random had to be excluded from the wasm build to prevent dead code warnings in the wasm target.
This commit is contained in:
		
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							77d7e452e1
						
					
				
				
					commit
					83fa93ccaf
				
			| @@ -185,7 +185,7 @@ impl RequestBuilder { | ||||
|     /// The headers will be merged in to any already set. | ||||
|     pub fn headers(mut self, headers: crate::header::HeaderMap) -> RequestBuilder { | ||||
|         if let Ok(ref mut req) = self.request { | ||||
|             replace_headers(req.headers_mut(), headers); | ||||
|             crate::util::replace_headers(req.headers_mut(), headers); | ||||
|         } | ||||
|         self | ||||
|     } | ||||
| @@ -467,33 +467,6 @@ fn fmt_request_fields<'a, 'b>( | ||||
|         .field("headers", &req.headers) | ||||
| } | ||||
|  | ||||
| pub(crate) fn replace_headers(dst: &mut HeaderMap, src: HeaderMap) { | ||||
|     // IntoIter of HeaderMap yields (Option<HeaderName>, HeaderValue). | ||||
|     // The first time a name is yielded, it will be Some(name), and if | ||||
|     // there are more values with the same name, the next yield will be | ||||
|     // None. | ||||
|     // | ||||
|     // TODO: a complex exercise would be to optimize this to only | ||||
|     // require 1 hash/lookup of the key, but doing something fancy | ||||
|     // with header::Entry... | ||||
|  | ||||
|     let mut prev_name = None; | ||||
|     for (key, value) in src { | ||||
|         match key { | ||||
|             Some(key) => { | ||||
|                 dst.insert(key.clone(), value); | ||||
|                 prev_name = Some(key); | ||||
|             } | ||||
|             None => match prev_name { | ||||
|                 Some(ref key) => { | ||||
|                     dst.append(key.clone(), value); | ||||
|                 } | ||||
|                 None => unreachable!("HeaderMap::into_iter yielded None first"), | ||||
|             }, | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
|  | ||||
| /// Check the request URL for a "username:password" type authority, and if | ||||
| /// found, remove it from the URL and return it. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user