#[non_exhaustive]pub enum PlanError {
Show 27 variants
MissingEntryNode,
DuplicateNodeId {
node: NodeId,
},
UndefinedNode {
node: NodeId,
},
MissingTransition {
node: NodeId,
},
AmbiguousTransition {
node: NodeId,
first: ExitPattern,
second: ExitPattern,
},
UnreachableNode {
node: NodeId,
},
CyclicGraph {
node: NodeId,
},
TooManyNodes {
max: usize,
},
TooManyTransitions {
max: usize,
},
TooManyOutgoingTransitions {
node: NodeId,
max: usize,
},
InvalidPattern {
max_bytes: usize,
},
ZeroDecisionInputVersion,
InvalidSplitBranchCount {
split: NodeId,
min: usize,
max: usize,
},
InvalidBranchLength {
split: NodeId,
max: usize,
},
SplitIsEntry {
split: NodeId,
},
InvalidSplitJoin {
split: NodeId,
join: NodeId,
},
JoinHasMultipleOwners {
join: NodeId,
first: NodeId,
second: NodeId,
},
OrphanJoin {
join: NodeId,
},
JoinHasExternalEntry {
join: NodeId,
},
SplitHasExplicitTransition {
split: NodeId,
},
ParallelBudgetExceedsBranches {
split: NodeId,
branches: usize,
},
InvalidParallelBranchBudget {
max: usize,
},
InvalidPartitionWorkerBudget {
max: u8,
},
InsufficientPoolCapacity {
required: u32,
configured: u32,
},
InvalidPartitionCount {
max: u16,
},
Token(DefinitionError),
Manifest(DefinitionError),
}Expand description
A flow graph that cannot be compiled into an executable plan.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
MissingEntryNode
No entry node was declared.
DuplicateNodeId
Two nodes declared the same logical identifier.
UndefinedNode
A transition referenced a node the graph does not declare.
MissingTransition
A node declared no outgoing transition.
AmbiguousTransition
Two equally specific patterns can match one exit outcome.
UnreachableNode
A node cannot be reached from the entry node.
CyclicGraph
The graph contains a cycle.
TooManyNodes
The graph declared more nodes than M3 accepts.
TooManyTransitions
The graph declared more transitions than M3 accepts.
TooManyOutgoingTransitions
One node declared more outgoing transitions than M3 accepts.
Fields
InvalidPattern
An exit pattern violated its bounded format.
ZeroDecisionInputVersion
A decision input-contract version of zero is not a version.
InvalidSplitBranchCount
A split declared fewer than two or more than eight branches.
Fields
InvalidBranchLength
A split branch was empty or longer than the accepted bound.
SplitIsEntry
A split was declared as the graph entry.
InvalidSplitJoin
A split did not reference a declared structural join.
JoinHasMultipleOwners
More than one split tried to own the same join.
Fields
OrphanJoin
A join was not owned by any split.
JoinHasExternalEntry
A normal transition attempted to enter a structural join.
SplitHasExplicitTransition
A split tried to bypass its implicit join edge.
ParallelBudgetExceedsBranches
The branch concurrency budget exceeded the declared branch count.
InvalidParallelBranchBudget
A branch concurrency budget was zero or above the M4 ceiling.
InvalidPartitionWorkerBudget
A partition-worker budget was zero or above the M4 ceiling.
InsufficientPoolCapacity
The declared pool cannot supply active children plus their parent.
InvalidPartitionCount
A durable partition count was zero or above the M4 ceiling.
Token(DefinitionError)
A logical identifier or revision token was invalid.
Manifest(DefinitionError)
The canonical manifest could not be encoded within its bound.
Trait Implementations§
impl Eq for PlanError
Source§impl Error for PlanError
impl Error for PlanError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<DefinitionError> for PlanError
impl From<DefinitionError> for PlanError
Source§fn from(error: DefinitionError) -> PlanError
fn from(error: DefinitionError) -> PlanError
impl StructuralPartialEq for PlanError
Auto Trait Implementations§
impl Freeze for PlanError
impl RefUnwindSafe for PlanError
impl Send for PlanError
impl Sync for PlanError
impl Unpin for PlanError
impl UnsafeUnpin for PlanError
impl UnwindSafe for PlanError
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