1#[derive(Debug, Copy, Clone, PartialEq, Eq)]
8pub enum HttpVersion {
9 OnePointOne,
11}
12
13impl From<&[u8]> for HttpVersion {
14 fn from(value: &[u8]) -> Self {
19 match value {
20 b"HTTP/1.1" => HttpVersion::OnePointOne,
21 _ => panic!("Unsupported version"),
22 }
23 }
24}
25
26impl From<HttpVersion> for &'static str {
27 fn from(value: HttpVersion) -> Self {
29 match value {
30 HttpVersion::OnePointOne => "HTTP/1.1",
31 }
32 }
33}
34
35#[derive(Debug, Copy, Clone, PartialEq, Eq)]
37pub enum HttpMethod {
38 GET,
39 HEAD,
40 OPTIONS,
41 POST,
42 PUT,
43 PATCH,
44 DELETE,
45}
46
47impl From<&[u8]> for HttpMethod {
48 fn from(value: &[u8]) -> Self {
50 match value {
51 b"GET" => HttpMethod::GET,
52 b"HEAD" => HttpMethod::HEAD,
53 b"OPTIONS" => HttpMethod::OPTIONS,
54 b"POST" => HttpMethod::POST,
55 b"PUT" => HttpMethod::PUT,
56 b"PATCH" => HttpMethod::PATCH,
57 b"DELETE" => HttpMethod::DELETE,
58 _ => panic!("Unknown HTTP method"),
59 }
60 }
61}