1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
use std::str::FromStr;

use crate::http::errors::malformed::MalformedError;


#[derive(PartialEq, Eq, Clone, Copy, Debug)]
pub enum Verb {
    POST,
    GET,
    PUT,
    DELETE,
    PATCH,
    OPTION
}

impl FromStr for Verb {
    type Err = MalformedError;

    fn from_str(input: &str) -> Result<Verb, MalformedError> {
        return match input {
            "POST" => Ok(Self::POST),
            "GET" => Ok(Self::GET),
            "PUT" => Ok(Self::PUT),
            "DELETE" => Ok(Self::DELETE),
            "PATCH" => Ok(Self::PATCH),
            "OPTIONS" => Ok(Self::OPTION),
            _ =>  Err(MalformedError::from(format!("Unknown verb: {}", input)))
        }
    }
}