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/version.rs | |
download | http-168b8937eb0fe88311fe474ab9569691a19d087f.tar.gz http-168b8937eb0fe88311fe474ab9569691a19d087f.tar.bz2 http-168b8937eb0fe88311fe474ab9569691a19d087f.zip |
changes
Diffstat (limited to 'src/version.rs')
-rw-r--r-- | src/version.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/version.rs b/src/version.rs new file mode 100644 index 0000000..6b6d5fb --- /dev/null +++ b/src/version.rs @@ -0,0 +1,34 @@ +use crate::parse::Parse; + +pub enum Version { + HTTP11, + HTTP2, + Unknown(String) +} + +impl Version { + pub fn as_str(&self) -> &str { + match self { + Self::HTTP11 => "HTTP/1.1", + Self::HTTP2 => "HTTP/2", + Self::Unknown(ref s) => s, + } + } +} + +impl Parse for Version { + fn parse(s: impl Into<String>) -> Self { + let s = s.into(); + match s.as_str() { + "HTTP/1.1" => Self::HTTP11, + "HTTP/2" => Self::HTTP2, + _ => Self::Unknown(s) + } + } +} + +impl ToString for Version { + fn to_string(&self) -> String { + self.as_str().to_string() + } +} |