From<http::Response> for Response (#360)
This adds an implementation to convert a `Response` type from the `http` crate to the `async_impl::Response` type. This is the first step to allow us to convert `http::Response` objects to `request::Response` objects This also adds an extension trait for the `http::response::Builder` type. The `http::Response` object does not provide a way to access the "final" url that the response is derived from, so we can't easily provide that in the `From<http::Response>` implementation. For users who are manually constructing `http::Response` objects for use in tests, etc, they can import this extension trait, which adds a `.url()` builder method that will allow them to pass a `Url`, which we then convert to our newtype'd Url and add to the `http::Response`'s `extensions`. Then, when converting from `http::Response` to `async_impl::Response` we can pull that value out of the `extensions` and use it to construct the `async_impl::Response` Closes #333
This commit is contained in:
		
				
					committed by
					
						 Sean McArthur
						Sean McArthur
					
				
			
			
				
	
			
			
			
						parent
						
							22fa725f48
						
					
				
				
					commit
					4857a5917d
				
			| @@ -6,6 +6,7 @@ use std::borrow::Cow; | ||||
|  | ||||
| use encoding_rs::{Encoding, UTF_8}; | ||||
| use futures::{Async, Poll, Stream}; | ||||
| use http; | ||||
| use mime::Mime; | ||||
| use serde::de::DeserializeOwned; | ||||
| use serde_json; | ||||
| @@ -336,3 +337,9 @@ pub fn new(mut res: async_impl::Response, timeout: Option<Duration>, thread: Kee | ||||
|     } | ||||
| } | ||||
|  | ||||
| impl<T: Into<async_impl::body::Body>> From<http::Response<T>> for Response { | ||||
|     fn from(r: http::Response<T>) -> Response { | ||||
|         let response = async_impl::Response::from(r); | ||||
|         new(response, None, KeepCoreThreadAlive::empty()) | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user