use nom::Parser;
use serde::Deserialize;
use serde::Serialize;
use std::fmt;
use std::str;
use nom::IResult;
use nom::branch::alt;
use nom::bytes::complete::tag_no_case;
use nom::combinator::map;
#[derive(Clone, Debug, Hash, PartialEq, Eq, Serialize, Deserialize)]
pub enum OrderType {
OrderAscending,
OrderDescending,
}
impl fmt::Display for OrderType {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
OrderType::OrderAscending => write!(f, "ASC"),
OrderType::OrderDescending => write!(f, "DESC"),
}
}
}
pub fn order_type(i: &[u8]) -> IResult<&[u8], OrderType> {
alt((
map(tag_no_case("desc"), |_| OrderType::OrderDescending),
map(tag_no_case("asc"), |_| OrderType::OrderAscending),
))
.parse(i)
}