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
parent
a1e59fc6f9
commit
c29af72972
@@ -1,6 +1,7 @@
|
|||||||
//! The HTTP request method
|
//! The HTTP request method
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
|
use std::convert::AsRef;
|
||||||
|
|
||||||
use error::HttpError;
|
use error::HttpError;
|
||||||
use self::Method::{Options, Get, Post, Put, Delete, Head, Trace, Connect, Patch,
|
use self::Method::{Options, Get, Post, Put, Delete, Head, Trace, Connect, Patch,
|
||||||
@@ -38,6 +39,23 @@ pub enum Method {
|
|||||||
Extension(String)
|
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 {
|
impl Method {
|
||||||
/// Whether a method is considered "safe", meaning the request is
|
/// Whether a method is considered "safe", meaning the request is
|
||||||
/// essentially read-only.
|
/// essentially read-only.
|
||||||
@@ -147,4 +165,12 @@ mod tests {
|
|||||||
counter.insert(Get, 1);
|
counter.insert(Get, 1);
|
||||||
assert_eq!(Some(&1), counter.get(&Get));
|
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