#[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()