temporalio_client/
workflow_status.rs1use temporalio_common::protos::temporal::api::enums::v1::WorkflowExecutionStatus as ProtoWorkflowExecutionStatus;
2
3#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
5#[non_exhaustive]
6pub enum WorkflowExecutionStatus {
7 Unspecified,
9 Running,
11 Completed,
13 Failed,
15 Canceled,
17 Terminated,
19 ContinuedAsNew,
21 TimedOut,
23 Paused,
25 Unknown,
27}
28
29impl WorkflowExecutionStatus {
30 pub(crate) fn from_raw(value: i32) -> Self {
31 match ProtoWorkflowExecutionStatus::try_from(value) {
32 Ok(ProtoWorkflowExecutionStatus::Unspecified) => Self::Unspecified,
33 Ok(ProtoWorkflowExecutionStatus::Running) => Self::Running,
34 Ok(ProtoWorkflowExecutionStatus::Completed) => Self::Completed,
35 Ok(ProtoWorkflowExecutionStatus::Failed) => Self::Failed,
36 Ok(ProtoWorkflowExecutionStatus::Canceled) => Self::Canceled,
37 Ok(ProtoWorkflowExecutionStatus::Terminated) => Self::Terminated,
38 Ok(ProtoWorkflowExecutionStatus::ContinuedAsNew) => Self::ContinuedAsNew,
39 Ok(ProtoWorkflowExecutionStatus::TimedOut) => Self::TimedOut,
40 Ok(ProtoWorkflowExecutionStatus::Paused) => Self::Paused,
41 Err(_) => Self::Unknown,
42 }
43 }
44}
45
46impl From<ProtoWorkflowExecutionStatus> for WorkflowExecutionStatus {
47 fn from(value: ProtoWorkflowExecutionStatus) -> Self {
48 Self::from_raw(value as i32)
49 }
50}