use std::path::PathBuf;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct JobId(pub u64);
impl std::fmt::Display for JobId {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", self.0)
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum JobStatus {
Running,
Stopped,
Done,
Failed,
}
impl std::fmt::Display for JobStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
JobStatus::Running => write!(f, "Running"),
JobStatus::Stopped => write!(f, "Stopped"),
JobStatus::Done => write!(f, "Done"),
JobStatus::Failed => write!(f, "Failed"),
}
}
}
#[derive(Debug, Clone)]
pub struct JobInfo {
pub id: JobId,
pub command: String,
pub status: JobStatus,
pub output_file: Option<PathBuf>,
pub pid: Option<u32>,
}