diff options
author | Tyler Murphy <tylerm@tylerm.dev> | 2023-07-05 21:34:20 -0400 |
---|---|---|
committer | Tyler Murphy <tylerm@tylerm.dev> | 2023-07-05 21:34:20 -0400 |
commit | 168b8937eb0fe88311fe474ab9569691a19d087f (patch) | |
tree | 3e70d7de89adc9e62987cea9341ba2cc10d6cf25 /src/method.rs | |
download | http-168b8937eb0fe88311fe474ab9569691a19d087f.tar.gz http-168b8937eb0fe88311fe474ab9569691a19d087f.tar.bz2 http-168b8937eb0fe88311fe474ab9569691a19d087f.zip |
changes
Diffstat (limited to 'src/method.rs')
-rw-r--r-- | src/method.rs | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/method.rs b/src/method.rs new file mode 100644 index 0000000..004ce8d --- /dev/null +++ b/src/method.rs @@ -0,0 +1,65 @@ +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<String>) -> 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() + } +} + |