pub struct FlowGraph { /* private fields */ }Expand description
An immutable declaration of the M3 flow subset.
The worked example lives in the oxide-batch crate documentation, so that
it keeps demonstrating the supported import path.
Implementations§
Source§impl FlowGraph
impl FlowGraph
Sourcepub fn with_transition(self, transition: FlowTransition) -> FlowGraph
pub fn with_transition(self, transition: FlowTransition) -> FlowGraph
Declares one explicit transition.
Sourcepub fn with_sequence(
self,
source: NodeId,
next: FlowTarget,
) -> Result<FlowGraph, PlanError>
pub fn with_sequence( self, source: NodeId, next: FlowTarget, ) -> Result<FlowGraph, PlanError>
Declares the convenience sequential edge.
A sequential edge compiles to an exact FAILED transition leading to
TerminalKind::Fail and a less specific * transition leading to
next. Custom successful exit codes therefore continue, while a failed
step ends the job.
§Errors
Returns PlanError::InvalidPattern only if the framework-owned
patterns cannot be constructed.
Sourcepub fn compile(
self,
job_name: &JobName,
revision: DefinitionRevision,
) -> Result<CompiledExecutionPlan, PlanError>
pub fn compile( self, job_name: &JobName, revision: DefinitionRevision, ) -> Result<CompiledExecutionPlan, PlanError>
Validates and normalizes the graph into an immutable plan.
§Errors
Returns PlanError for a missing entry node, a duplicate logical
identifier, an undefined source or target, a node without outgoing
transitions, two equally specific patterns that can match one value, an
unreachable node, a cycle, an exceeded bound, or a manifest that cannot
be encoded within the durable limit.
Trait Implementations§
impl Eq for FlowGraph
impl StructuralPartialEq for FlowGraph
Auto Trait Implementations§
impl Freeze for FlowGraph
impl RefUnwindSafe for FlowGraph
impl Send for FlowGraph
impl Sync for FlowGraph
impl Unpin for FlowGraph
impl UnsafeUnpin for FlowGraph
impl UnwindSafe for FlowGraph
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more