Make ResponseBuilderExt not target-dependent
This commit is contained in:
		
				
					committed by
					
						 Sean McArthur
						Sean McArthur
					
				
			
			
				
	
			
			
			
						parent
						
							3879694c09
						
					
				
				
					commit
					1be9c34f01
				
			
							
								
								
									
										41
									
								
								src/response.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								src/response.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,41 @@ | ||||
| use url::Url; | ||||
|  | ||||
| #[derive(Debug, Clone, PartialEq)] | ||||
| pub(crate) struct ResponseUrl(pub Url); | ||||
|  | ||||
| /// Extension trait for http::response::Builder objects | ||||
| /// | ||||
| /// Allows the user to add a `Url` to the http::Response | ||||
| pub trait ResponseBuilderExt { | ||||
|     /// A builder method for the `http::response::Builder` type that allows the user to add a `Url` | ||||
|     /// to the `http::Response` | ||||
|     fn url(self, url: Url) -> Self; | ||||
| } | ||||
|  | ||||
| impl ResponseBuilderExt for http::response::Builder { | ||||
|     fn url(self, url: Url) -> Self { | ||||
|         self.extension(ResponseUrl(url)) | ||||
|     } | ||||
| } | ||||
|  | ||||
| #[cfg(test)] | ||||
| mod tests { | ||||
|     use super::{ResponseBuilderExt, ResponseUrl}; | ||||
|     use http::response::Builder; | ||||
|     use url::Url; | ||||
|  | ||||
|     #[test] | ||||
|     fn test_response_builder_ext() { | ||||
|         let url = Url::parse("http://example.com").unwrap(); | ||||
|         let response = Builder::new() | ||||
|             .status(200) | ||||
|             .url(url.clone()) | ||||
|             .body(()) | ||||
|             .unwrap(); | ||||
|  | ||||
|         assert_eq!( | ||||
|             response.extensions().get::<ResponseUrl>(), | ||||
|             Some(&ResponseUrl(url)) | ||||
|         ); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user