From 168b8937eb0fe88311fe474ab9569691a19d087f Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Wed, 5 Jul 2023 21:34:20 -0400 Subject: changes --- src/version.rs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/version.rs (limited to 'src/version.rs') 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) -> 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() + } +} -- cgit v1.2.3-freya