summaryrefslogtreecommitdiff
path: root/spider_server/src/http_method.rs
diff options
context:
space:
mode:
Diffstat (limited to 'spider_server/src/http_method.rs')
-rw-r--r--spider_server/src/http_method.rs39
1 files changed, 39 insertions, 0 deletions
diff --git a/spider_server/src/http_method.rs b/spider_server/src/http_method.rs
new file mode 100644
index 0000000..814c93b
--- /dev/null
+++ b/spider_server/src/http_method.rs
@@ -0,0 +1,39 @@
+use std::fmt;
+
+#[derive(PartialEq)]
+pub enum HttpMethod {
+ GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
+}
+
+impl fmt::Display for HttpMethod {
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+ match *self {
+ HttpMethod::GET => write!(f, "GET"),
+ HttpMethod::HEAD => write!(f, "HEAD"),
+ HttpMethod::POST => write!(f, "POST"),
+ HttpMethod::PUT => write!(f, "PUT"),
+ HttpMethod::DELETE => write!(f, "DELETE"),
+ HttpMethod::CONNECT => write!(f, "CONNECT"),
+ HttpMethod::OPTIONS => write!(f, "OPTIONS"),
+ HttpMethod::TRACE => write!(f, "TRACE"),
+ HttpMethod::PATCH => write!(f, "PATCH"),
+ }
+ }
+}
+
+impl HttpMethod {
+ pub fn parse(s: String) -> Option<HttpMethod> {
+ match &*s {
+ "GET" => Some(HttpMethod::GET),
+ "HEAD" => Some(HttpMethod::HEAD),
+ "POST" => Some(HttpMethod::POST),
+ "PUT" => Some(HttpMethod::PUT),
+ "DELETE" => Some(HttpMethod::DELETE),
+ "CONNECT" => Some(HttpMethod::CONNECT),
+ "OPTIONS" => Some(HttpMethod::OPTIONS),
+ "TRACE" => Some(HttpMethod::TRACE),
+ "PATCH" => Some(HttpMethod::PATCH),
+ _ => None
+ }
+ }
+}