use std::str::FromStr;
#[derive(Debug, PartialEq)]
pub enum Method {
GET,
POST,
PUT,
DELETE,
}
impl Method {
pub fn as_str(&self) -> &str {
match self {
Method::GET => "GET",
Method::POST => "POST",
Method::PUT => "PUT",
Method::DELETE => "DELETE",
}
}
}
impl FromStr for Method {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s {
"GET" => Ok(Method::GET),
"POST" => Ok(Method::POST),
"DELETE" => Ok(Method::DELETE),
"PUT" => Ok(Method::PUT),
_ => Err(()),
}
}
}
#[cfg(test)]
mod test {
use super::*;
#[test]
fn as_str() {
assert_eq!(Method::GET.as_str(), "GET");
assert_eq!(Method::PUT.as_str(), "PUT");
assert_eq!(Method::DELETE.as_str(), "DELETE");
assert_eq!(Method::POST.as_str(), "POST");
}
}