use serde::{Deserialize, Serialize};
use std::fmt;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum ContentType {
#[serde(rename = "dir")]
Dir,
#[serde(rename = "file")]
File,
}
impl fmt::Display for ContentType {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
ContentType::Dir => write!(f, "dir"),
ContentType::File => write!(f, "file"),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum IssueState {
#[serde(rename = "closed")]
Closed,
#[serde(rename = "open")]
Open,
}
impl fmt::Display for IssueState {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
IssueState::Closed => write!(f, "closed"),
IssueState::Open => write!(f, "open"),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum PullRequestSortCriteria {
#[serde(rename = "created")]
Created,
#[serde(rename = "long-running")]
LongRunning,
#[serde(rename = "popularity")]
Popularity,
#[serde(rename = "updated")]
Updated,
}
impl fmt::Display for PullRequestSortCriteria {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
PullRequestSortCriteria::Created => write!(f, "created"),
PullRequestSortCriteria::LongRunning => write!(f, "long-running"),
PullRequestSortCriteria::Popularity => write!(f, "popularity"),
PullRequestSortCriteria::Updated => write!(f, "updated"),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum PullRequestSortDirection {
#[serde(rename = "asc")]
Asc,
#[serde(rename = "desc")]
Desc,
}
impl fmt::Display for PullRequestSortDirection {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
PullRequestSortDirection::Asc => write!(f, "asc"),
PullRequestSortDirection::Desc => write!(f, "desc"),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum PullRequestState {
#[serde(rename = "closed")]
Closed,
#[serde(rename = "open")]
Open,
}
impl fmt::Display for PullRequestState {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
PullRequestState::Closed => write!(f, "closed"),
PullRequestState::Open => write!(f, "open"),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum PullRequestStateFilter {
#[serde(rename = "all")]
All,
#[serde(rename = "closed")]
Closed,
#[serde(rename = "open")]
Open,
}
impl fmt::Display for PullRequestStateFilter {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
PullRequestStateFilter::All => write!(f, "all"),
PullRequestStateFilter::Closed => write!(f, "closed"),
PullRequestStateFilter::Open => write!(f, "open"),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum UserType {
#[serde(rename = "Organization")]
Organization,
#[serde(rename = "User")]
User,
}
impl fmt::Display for UserType {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
UserType::Organization => write!(f, "Organization"),
UserType::User => write!(f, "User"),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum VisibilityType {
#[serde(rename = "limited")]
Limited,
#[serde(rename = "private")]
Private,
#[serde(rename = "public")]
Public,
}
impl fmt::Display for VisibilityType {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
VisibilityType::Limited => write!(f, "limited"),
VisibilityType::Private => write!(f, "private"),
VisibilityType::Public => write!(f, "public"),
}
}
}