42 lines
1.2 KiB
Rust
42 lines
1.2 KiB
Rust
// Copyright (C) 2023 Aravinth Manivannan <realaravinth@batsense.net>
|
|
// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
|
|
//
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
//! Milestone associated to a repository within a forge
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
use crate::OpenCloseState;
|
|
|
|
/// Milestone associated to a repository within a forge
|
|
#[derive(Clone, Debug, Serialize, Deserialize, Default, Eq, PartialEq)]
|
|
pub struct Milestone {
|
|
/// Unique identifier
|
|
pub index: usize,
|
|
|
|
/// Short description
|
|
pub title: String,
|
|
|
|
/// Long, multiline, description
|
|
pub description: String,
|
|
|
|
// TODO: add validation for format "date-time"
|
|
/// Deadline after which the milestone is overdue
|
|
pub deadline: Option<String>,
|
|
|
|
// TODO: add validation for format "date-time"
|
|
/// Creating time
|
|
pub created: String,
|
|
|
|
// TODO: add validation for format "date-time"
|
|
/// Last update time
|
|
pub updated: String,
|
|
|
|
// TODO: add validation for format "date-time"
|
|
/// The last time 'state' changed to 'closed'
|
|
pub closed: String,
|
|
|
|
/// A 'closed' milestone will not see any activity in the future, otherwise it is 'open'.
|
|
pub state: OpenCloseState,
|
|
}
|