cod_types/api/
issue.rs

1use std::fmt::Display;
2
3use chrono::{DateTime, Utc};
4use serde::Deserialize;
5
6use crate::api::label::Label;
7use crate::api::milestone::Milestone;
8use crate::api::pull_request_meta::PullRequestMeta;
9use crate::api::state_type::StateType;
10use crate::api::user::User;
11
12#[derive(Debug, Clone, Deserialize)]
13pub struct Issue {
14    pub title: String,
15    pub number: usize,
16    pub labels: Vec<Label>,
17    pub assignees: Option<Vec<User>>,
18    pub body: String,
19    pub state: StateType,
20    pub pull_request: Option<PullRequestMeta>,
21    pub milestone: Option<Milestone>,
22    pub closed_at: Option<DateTime<Utc>>,
23    pub created_at: DateTime<Utc>,
24    pub due_date: Option<DateTime<Utc>>,
25    pub updated_at: DateTime<Utc>,
26}
27
28impl Display for Issue {
29    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
30        write!(f, "#{} {}", self.number, self.title)
31    }
32}