use std::ops::ControlFlow;
use crate::{AsyncWorkflowState, WorkflowState};
pub type Transition<'workflow, WorkflowResult> =
ControlFlow<WorkflowResult, Box<dyn WorkflowState<'workflow, WorkflowResult> + 'workflow>>;
pub type StaticTransition<WorkflowResult> = Transition<'static, WorkflowResult>;
#[cfg(feature = "async")]
pub type AsyncTransition<'workflow, WorkflowResult> =
ControlFlow<WorkflowResult, Box<dyn AsyncWorkflowState<'workflow, WorkflowResult> + 'workflow>>;
#[cfg(feature = "async")]
pub type AsyncStaticTransition<WorkflowResult> = AsyncTransition<'static, WorkflowResult>;