pub enum FixpointError {
RuleNotForTarget {
rule_index: usize,
observed: String,
expected: String,
},
HeadArityMismatch {
rule_index: usize,
observed_arity: usize,
expected_arity: usize,
},
TargetPredicateInBaseRelations {
name: String,
},
RuleEval {
rule_index: usize,
source: RefEvalError,
},
MaxIterationsExceeded {
limit: usize,
observed_size: usize,
},
TargetSchemaIndeterminable,
InvalidMaxIterations,
}Expand description
Errors surfaced by evaluate_fixpoint.
Variants§
RuleNotForTarget
A rule’s head predicate did not equal target_predicate.
The fixpoint evaluator only accepts rules that contribute
to the named target.
Fields
HeadArityMismatch
Two rules disagreed on the target predicate’s head arity.
Surfaced separately from the per-row arity check so the
caller sees the rule-level shape mismatch directly rather
than as a downstream RelationRowArityMismatch.
Fields
TargetPredicateInBaseRelations
target_predicate was already present in base_relations.
The fixpoint constructs the target relation; allowing
base_relations to seed it would silently shadow the
caller’s seed on the first iteration. If you want a seed,
encode it as a base-case rule.
RuleEval
A rule failed evaluation. Wraps the per-rule error from
evaluate_rule with the rule’s index in the input slice
for diagnostic precision.
MaxIterationsExceeded
The fixpoint did not converge within
FixpointConfig::max_iterations.
Fields
TargetSchemaIndeterminable
No supplied rule produced a head whose arity could be inferred — caller supplied an empty rules slice or every rule had an empty head.
InvalidMaxIterations
max_iterations was zero. Must be ≥ 1.
Trait Implementations§
Source§impl Clone for FixpointError
impl Clone for FixpointError
Source§fn clone(&self) -> FixpointError
fn clone(&self) -> FixpointError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more