use serde::{Deserialize as SerdeDeserialize, Serialize};
use std::fmt;
#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub enum CacheValidationStatus {
#[serde(rename = "ok")]
Valid,
Invalid,
}
impl CacheValidationStatus {
#[must_use]
pub const fn as_str(self) -> &'static str {
match self {
Self::Valid => "ok",
Self::Invalid => "invalid",
}
}
}
impl fmt::Display for CacheValidationStatus {
fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
formatter.write_str(self.as_str())
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, SerdeDeserialize, Serialize)]
#[serde(rename_all = "snake_case")]
pub enum CacheRefreshAttemptStatus {
Running,
Complete,
Failed,
}
impl CacheRefreshAttemptStatus {
#[must_use]
pub const fn as_str(self) -> &'static str {
match self {
Self::Running => "running",
Self::Complete => "complete",
Self::Failed => "failed",
}
}
}
impl fmt::Display for CacheRefreshAttemptStatus {
fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
formatter.write_str(self.as_str())
}
}
#[cfg(test)]
mod tests;
#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct SnapshotRefreshAttemptStatus {
pub status: CacheRefreshAttemptStatus,
pub started_at: String,
pub updated_at: String,
pub page_size: u32,
pub pages_fetched: u32,
pub rows_fetched: usize,
pub last_cursor: Option<String>,
pub last_error: Option<String>,
}