use crate::parse::Parse; pub enum Method { Get, Head, Post, Put, Delete, Connect, Options, Trace, Patch, Brew, PropFind, When, Unkown(String) } impl Method { pub fn as_str(&self) -> &str { match self { Self::Get => "GET", Self::Head => "HEAD", Self::Post => "POST", Self::Put => "PUT", Self::Delete => "DELETE", Self::Connect => "CONNECT", Self::Options => "OPTIONS", Self::Trace => "TRACE", Self::Patch => "PATCH", Self::Brew => "BREW", Self::PropFind => "PROPFIND", Self::When => "WHEN", Self::Unkown(ref s) => s } } } impl Parse for Method { fn parse(s: impl Into) -> Self { let str: String = s.into(); match str.as_str() { "GET" => Self::Get, "HEAD" => Self::Head, "POST" => Self::Post, "PUT" => Self::Put, "DELETE" => Self::Delete, "CONNECT" => Self::Connect, "OPTIONS" => Self::Options, "TRACE" => Self::Trace, "PATCH" => Self::Patch, "BREW" => Self::Brew, "PROPFIND" => Self::PropFind, "WHEN" => Self::When, _ => Self::Unkown(str) } } } impl ToString for Method { fn to_string(&self) -> String { self.as_str().to_string() } }