temporal_sdk_core/machines/
signal_external_state_machine.rs

1use rustfsm::{fsm, TransitionResult};
2
3fsm! {
4    pub(super) name SignalExternalMachine; command SignalExternalCommand; error SignalExternalMachineError;
5
6    Created --(Schedule, on_schedule) --> SignalExternalCommandCreated;
7
8    SignalExternalCommandCreated --(CommandSignalExternalWorkflowExecution) --> SignalExternalCommandCreated;
9    SignalExternalCommandCreated --(Cancel, on_cancel) --> Canceled;
10    SignalExternalCommandCreated --(SignalExternalWorkflowExecutionInitiated, on_signal_external_workflow_execution_initiated) --> SignalExternalCommandRecorded;
11
12    SignalExternalCommandRecorded --(Cancel) --> SignalExternalCommandRecorded;
13    SignalExternalCommandRecorded --(ExternalWorkflowExecutionSignaled, on_external_workflow_execution_signaled) --> Signaled;
14    SignalExternalCommandRecorded --(SignalExternalWorkflowExecutionFailed, on_signal_external_workflow_execution_failed) --> Failed;
15}
16
17#[derive(thiserror::Error, Debug)]
18pub(super) enum SignalExternalMachineError {}
19
20pub(super) enum SignalExternalCommand {}
21
22#[derive(Default, Clone)]
23pub(super) struct Canceled {}
24
25#[derive(Default, Clone)]
26pub(super) struct Created {}
27
28impl Created {
29    pub(super) fn on_schedule(
30        self,
31    ) -> SignalExternalMachineTransition<SignalExternalCommandCreated> {
32        unimplemented!()
33    }
34}
35
36#[derive(Default, Clone)]
37pub(super) struct Failed {}
38
39#[derive(Default, Clone)]
40pub(super) struct SignalExternalCommandCreated {}
41
42impl SignalExternalCommandCreated {
43    pub(super) fn on_cancel(self) -> SignalExternalMachineTransition<Canceled> {
44        unimplemented!()
45    }
46    pub(super) fn on_signal_external_workflow_execution_initiated(
47        self,
48    ) -> SignalExternalMachineTransition<SignalExternalCommandRecorded> {
49        unimplemented!()
50    }
51}
52
53#[derive(Default, Clone)]
54pub(super) struct SignalExternalCommandRecorded {}
55
56impl SignalExternalCommandRecorded {
57    pub(super) fn on_external_workflow_execution_signaled(
58        self,
59    ) -> SignalExternalMachineTransition<Signaled> {
60        unimplemented!()
61    }
62    pub(super) fn on_signal_external_workflow_execution_failed(
63        self,
64    ) -> SignalExternalMachineTransition<Failed> {
65        unimplemented!()
66    }
67}
68
69#[derive(Default, Clone)]
70pub(super) struct Signaled {}