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
use rocket::request::FromFormValue; use rocket::http::RawStr; #[derive(Serialize, Deserialize, Clone, PartialEq)] pub enum AscDesc { ASC, DESC, } impl AscDesc { pub fn as_str(&self) -> &str { match self { &AscDesc::ASC => "ASC", &AscDesc::DESC => "DESC", } } } impl<'v> FromFormValue<'v> for AscDesc { type Error = (); fn from_form_value(form_value: &RawStr) -> Result<Self, <Self as FromFormValue>::Error> { Ok(match form_value.to_lowercase().as_str() { "asc" => AscDesc::ASC, "desc" => AscDesc::DESC, _ => AscDesc::ASC }) } }