use crate::spectrogram::SpectrogramJob;
use crate::transcode::{AdditionalJob, TranscodeJob};
use rogue_logging::Error;
pub enum Job {
Additional(AdditionalJob),
Spectrogram(SpectrogramJob),
Transcode(TranscodeJob),
}
impl Job {
#[must_use]
pub fn get_id(&self) -> String {
match self {
Job::Additional(job) => job.id.clone(),
Job::Spectrogram(job) => job.id.clone(),
Job::Transcode(job) => job.id.clone(),
}
}
pub async fn execute(self) -> Result<(), Error> {
match self {
Job::Additional(job) => job.execute().await,
Job::Spectrogram(job) => job.execute().await,
Job::Transcode(job) => job.execute().await,
}
}
}