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() } }