feat(method): implement AsRef<str> for Method
				
					
				
			This lets us obtain the string representation of the method in a convenient and efficient manner.
This commit is contained in:
		
				
					committed by
					
						 Sean McArthur
						Sean McArthur
					
				
			
			
				
	
			
			
			
						parent
						
							a1e59fc6f9
						
					
				
				
					commit
					c29af72972
				
			| @@ -1,6 +1,7 @@ | ||||
| //! The HTTP request method | ||||
| use std::fmt; | ||||
| use std::str::FromStr; | ||||
| use std::convert::AsRef; | ||||
|  | ||||
| use error::HttpError; | ||||
| use self::Method::{Options, Get, Post, Put, Delete, Head, Trace, Connect, Patch, | ||||
| @@ -38,6 +39,23 @@ pub enum Method { | ||||
|     Extension(String) | ||||
| } | ||||
|  | ||||
| impl AsRef<str> for Method { | ||||
|     fn as_ref(&self) -> &str { | ||||
|         match *self { | ||||
|             Options => "OPTIONS", | ||||
|             Get => "GET", | ||||
|             Post => "POST", | ||||
|             Put => "PUT", | ||||
|             Delete => "DELETE", | ||||
|             Head => "HEAD", | ||||
|             Trace => "TRACE", | ||||
|             Connect => "CONNECT", | ||||
|             Patch => "PATCH", | ||||
|             Extension(ref s) => s.as_ref() | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| impl Method { | ||||
|     /// Whether a method is considered "safe", meaning the request is | ||||
|     /// essentially read-only. | ||||
| @@ -147,4 +165,12 @@ mod tests { | ||||
|         counter.insert(Get, 1); | ||||
|         assert_eq!(Some(&1), counter.get(&Get)); | ||||
|     } | ||||
|  | ||||
|     #[test] | ||||
|     fn test_as_str() { | ||||
|         assert_eq!(Get.as_ref(), "GET"); | ||||
|         assert_eq!(Post.as_ref(), "POST"); | ||||
|         assert_eq!(Put.as_ref(), "PUT"); | ||||
|         assert_eq!(Extension("MOVE".to_string()).as_ref(), "MOVE"); | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user