1use std::path::PathBuf;
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
7pub struct JobId(pub u64);
8
9impl std::fmt::Display for JobId {
10 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11 write!(f, "{}", self.0)
12 }
13}
14
15#[derive(Debug, Clone, PartialEq, Eq)]
17pub enum JobStatus {
18 Running,
20 Stopped,
22 Done,
24 Failed,
26}
27
28impl std::fmt::Display for JobStatus {
29 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
30 match self {
31 JobStatus::Running => write!(f, "Running"),
32 JobStatus::Stopped => write!(f, "Stopped"),
33 JobStatus::Done => write!(f, "Done"),
34 JobStatus::Failed => write!(f, "Failed"),
35 }
36 }
37}
38
39#[derive(Debug, Clone)]
41pub struct JobInfo {
42 pub id: JobId,
44 pub command: String,
46 pub status: JobStatus,
48 pub output_file: Option<PathBuf>,
50 pub pid: Option<u32>,
52}