feat(client): add Destination::try_from_uri constructor
				
					
				
			This change adds a try_from_uri function for creating Destinations outside of the hyper crate. The Destination can only be built if the uri contains a valid authority and scheme as these are required to build a Destination.
This commit is contained in:
		
				
					committed by
					
						 Sean McArthur
						Sean McArthur
					
				
			
			
				
	
			
			
			
						parent
						
							be5ec45571
						
					
				
				
					commit
					c809542c83
				
			| @@ -61,6 +61,18 @@ pub(super) enum Alpn { | |||||||
| } | } | ||||||
|  |  | ||||||
| impl Destination { | impl Destination { | ||||||
|  |     /// Try to convert a `Uri` into a `Destination` | ||||||
|  |     /// | ||||||
|  |     /// # Error | ||||||
|  |     /// | ||||||
|  |     /// Returns an error if the uri contains no authority or | ||||||
|  |     /// no scheme. | ||||||
|  |     pub fn try_from_uri(uri: Uri) -> ::Result<Self> { | ||||||
|  |         uri.authority_part().ok_or(::error::Parse::Uri)?; | ||||||
|  |         uri.scheme_part().ok_or(::error::Parse::Uri)?; | ||||||
|  |         Ok(Destination { uri }) | ||||||
|  |     } | ||||||
|  |  | ||||||
|     /// Get the protocol scheme. |     /// Get the protocol scheme. | ||||||
|     #[inline] |     #[inline] | ||||||
|     pub fn scheme(&self) -> &str { |     pub fn scheme(&self) -> &str { | ||||||
| @@ -590,4 +602,3 @@ mod tests { | |||||||
|         assert_eq!(res2.extensions().get::<Ex2>(), Some(&Ex2("hiccup"))); |         assert_eq!(res2.extensions().get::<Ex2>(), Some(&Ex2("hiccup"))); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user