gitdataai/libs/models/issues/mod.rs
2026-04-14 19:02:01 +08:00

82 lines
2.4 KiB
Rust

use serde::{Deserialize, Serialize};
/// Issue state. Stored as `"open"` or `"closed"`.
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum IssueState {
Open,
Closed,
}
impl std::fmt::Display for IssueState {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
IssueState::Open => write!(f, "open"),
IssueState::Closed => write!(f, "closed"),
}
}
}
impl std::str::FromStr for IssueState {
type Err = &'static str;
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s {
"open" => Ok(IssueState::Open),
"closed" => Ok(IssueState::Closed),
_ => Err("unknown issue state"),
}
}
}
/// Reaction / emoji type. Stored as `"thumbs_up"`, `"eyes"`, `"heart"`, `"party"`.
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum ReactionType {
ThumbsUp,
Eyes,
Heart,
Party,
}
impl std::fmt::Display for ReactionType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
ReactionType::ThumbsUp => write!(f, "thumbs_up"),
ReactionType::Eyes => write!(f, "eyes"),
ReactionType::Heart => write!(f, "heart"),
ReactionType::Party => write!(f, "party"),
}
}
}
impl std::str::FromStr for ReactionType {
type Err = &'static str;
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s {
"thumbs_up" => Ok(ReactionType::ThumbsUp),
"eyes" => Ok(ReactionType::Eyes),
"heart" => Ok(ReactionType::Heart),
"party" => Ok(ReactionType::Party),
_ => Err("unknown reaction type"),
}
}
}
pub use issue::Entity as Issue;
pub use issue_assignee::Entity as IssueAssignee;
pub use issue_comment::Entity as IssueComment;
pub use issue_comment_reaction::Entity as IssueCommentReaction;
pub use issue_label::Entity as IssueLabel;
pub use issue_pull_request::Entity as IssuePullRequest;
pub use issue_reaction::Entity as IssueReaction;
pub use issue_repo::Entity as IssueRepo;
pub use issue_subscriber::Entity as IssueSubscriber;
pub mod issue;
pub mod issue_assignee;
pub mod issue_comment;
pub mod issue_comment_reaction;
pub mod issue_label;
pub mod issue_pull_request;
pub mod issue_reaction;
pub mod issue_repo;
pub mod issue_subscriber;