1pub enum JobResult {
3 Success,
5 Failed,
7 RetryAt(chrono::DateTime<chrono::Utc>),
10 RescheduleAt(chrono::DateTime<chrono::Utc>),
14 HandlerMissing,
16 Critical,
18 Cancel,
20 Unprocessable,
22 InternalError,
25}
26impl JobResult {
27 pub(crate) fn handle(&self) -> JobResultInternal {
28 match self {
29 JobResult::Success => JobResultInternal::Completed,
30 JobResult::Failed => JobResultInternal::Pending,
31 JobResult::RetryAt(_) => JobResultInternal::Pending,
32 JobResult::RescheduleAt(_) => JobResultInternal::Pending,
33 JobResult::InternalError => JobResultInternal::Pending,
34 JobResult::HandlerMissing => JobResultInternal::Unprocessable,
35 JobResult::Unprocessable => JobResultInternal::Unprocessable,
36 JobResult::Critical => JobResultInternal::Critical,
37 JobResult::Cancel => JobResultInternal::Cancelled,
38 }
39 }
40}
41
42#[derive(Debug)]
43pub(crate) enum JobResultInternal {
44 Pending,
45 Failed,
46 Completed,
47 Unprocessable,
48 Cancelled,
49 Critical,
50 Running,
51 BadJob,
52}
53impl std::fmt::Display for JobResultInternal {
54 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
55 match self {
56 JobResultInternal::Pending => write!(f, "pending"),
57 JobResultInternal::Failed => write!(f, "failed"),
58 JobResultInternal::Completed => write!(f, "completed"),
59 JobResultInternal::Unprocessable => write!(f, "unprocessable"),
60 JobResultInternal::Cancelled => write!(f, "cancelled"),
61 JobResultInternal::Critical => write!(f, "critical_failure"),
62 JobResultInternal::Running => write!(f, "running"),
63 JobResultInternal::BadJob => write!(f, "bad_job"),
64 }
65 }
66}
67
68pub(crate) enum AnyJobResult {
69 Internal(JobResultInternal),
70 Public(JobResult),
71}
72
73impl From<JobResult> for AnyJobResult {
74 fn from(result: JobResult) -> Self {
75 Self::Public(result)
76 }
77}
78
79impl From<JobResultInternal> for AnyJobResult {
80 fn from(result: JobResultInternal) -> Self {
81 Self::Internal(result)
82 }
83}