use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum SortOption {
#[serde(rename = "_created_at")]
CreatedAt,
#[serde(rename = "_updated_at")]
UpdatedAt,
#[serde(rename = "created")]
Created,
#[serde(rename = "favorites")]
Favorites,
#[serde(rename = "heat")]
Heat,
#[serde(rename = "labsPublicationDate")]
LabsPublicationDate,
#[serde(rename = "magic")]
Magic,
#[serde(rename = "name")]
Name,
#[serde(rename = "order")]
Order,
#[serde(rename = "popularity")]
Popularity,
#[serde(rename = "publicationDate")]
PublicationDate,
#[serde(rename = "random")]
Random,
#[serde(rename = "relevance")]
Relevance,
#[serde(rename = "reportCount")]
ReportCount,
#[serde(rename = "reportScore")]
ReportScore,
#[serde(rename = "shuffle")]
Shuffle,
#[serde(rename = "trust")]
Trust,
#[serde(rename = "updated")]
Updated,
}
impl std::fmt::Display for SortOption {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::CreatedAt => write!(f, "_created_at"),
Self::UpdatedAt => write!(f, "_updated_at"),
Self::Created => write!(f, "created"),
Self::Favorites => write!(f, "favorites"),
Self::Heat => write!(f, "heat"),
Self::LabsPublicationDate => write!(f, "labsPublicationDate"),
Self::Magic => write!(f, "magic"),
Self::Name => write!(f, "name"),
Self::Order => write!(f, "order"),
Self::Popularity => write!(f, "popularity"),
Self::PublicationDate => write!(f, "publicationDate"),
Self::Random => write!(f, "random"),
Self::Relevance => write!(f, "relevance"),
Self::ReportCount => write!(f, "reportCount"),
Self::ReportScore => write!(f, "reportScore"),
Self::Shuffle => write!(f, "shuffle"),
Self::Trust => write!(f, "trust"),
Self::Updated => write!(f, "updated"),
}
}
}
impl Default for SortOption {
fn default() -> SortOption {
Self::CreatedAt
}
}