use crate::prelude::*;
pub(crate) struct VerifySuccess {
pub issues: Vec<SourceIssue>,
}
impl VerifySuccess {
pub fn verified(&self) -> bool {
self.issues.is_empty()
}
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub(crate) struct VerifyStatus {
pub verified: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub issues: Option<Vec<SourceIssue>>,
pub completed: TimeStamp,
}
impl VerifyStatus {
pub fn from_success(success: VerifySuccess) -> Self {
if success.issues.is_empty() {
Self {
verified: true,
issues: None,
completed: TimeStamp::now(),
}
} else {
Self {
verified: false,
issues: Some(success.issues),
completed: TimeStamp::now(),
}
}
}
#[cfg(test)]
pub(crate) fn verified() -> Self {
Self {
verified: true,
issues: None,
completed: TimeStamp::now(),
}
}
pub(crate) fn from_issue(issue: SourceIssue) -> Self {
Self {
verified: false,
issues: Some(vec![issue]),
completed: TimeStamp::now(),
}
}
}