use crate::{JobId, RecurringJobId};
#[derive(Debug, Clone)]
pub(crate) struct Id(String);
impl Id {
pub fn new(prefix: &str, id_str: &str) -> Self {
Self(format!("{}-{}", prefix, id_str))
}
}
impl std::fmt::Display for Id {
fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
formatter.write_str(&self.0)
}
}
pub(crate) enum IdOf {
SavedJob(JobId),
SavedRecurringJob(RecurringJobId),
ContinuationOf(JobId),
JobsInStagesId(String ),
AllJobs,
AllRecurringJobs,
ConfigDateLastPolledForReqdJobs,
ConfigDateLastPolledForDelayedJobs,
ConfigDateLastPolledForRecurringJobs,
ConfigDateLastPolledForExpiredStorage,
ConfigDateLastPolledForStuckJobs,
}
impl IdOf {
pub fn get_id(&self, prefix: &str) -> Id {
let id_str = match self {
IdOf::SavedJob(id) => format!("job-{}", id),
IdOf::SavedRecurringJob(id) => format!("rec-job-{}", id),
IdOf::ContinuationOf(id) => format!("job-{}-next", id),
IdOf::JobsInStagesId(stage) => format!("stage-{}-jobs", stage),
IdOf::AllJobs => "all-jobs".into(),
IdOf::AllRecurringJobs => "all-recurring-jobs".into(),
IdOf::ConfigDateLastPolledForReqdJobs => "date-polled-reqd-jobs".into(),
IdOf::ConfigDateLastPolledForDelayedJobs => "date-polled-delayed-jobs".into(),
IdOf::ConfigDateLastPolledForRecurringJobs => "date-polled-recurring-jobs".into(),
IdOf::ConfigDateLastPolledForExpiredStorage => "date-polled-expired-storage".into(),
IdOf::ConfigDateLastPolledForStuckJobs => "date-polled-stuck-jobs".into(),
};
Id::new(prefix, &id_str)
}
}