pub enum EpistemicComponentMergeReason {
SharedHeadPredicate {
predicate: String,
},
DerivedPredicate {
predicate: String,
},
SharedModalPredicate {
predicate: String,
},
Constraint {
predicates: Vec<String>,
},
}Expand description
Reason that two source rules were coalesced into the same dependency component.
These reasons make the split planner’s structural decisions explainable: a caller can read, for every component, why its rules could not be solved independently of one another through split-component diagnostics.
Variants§
Two rules share the same head predicate, so they jointly define one derived relation and must be solved together.
DerivedPredicate
One rule’s body consumes a predicate that another rule derives in its head (an ordinary/negated derived dependency).
Fields
Two rules reference the same epistemic (modal) predicate, so their world-view acceptance is mutually dependent.
Constraint
An integrity constraint mentions head predicates owned by both rules, so the constraint coalesces exactly those components.
Trait Implementations§
Source§impl Clone for EpistemicComponentMergeReason
impl Clone for EpistemicComponentMergeReason
Source§fn clone(&self) -> EpistemicComponentMergeReason
fn clone(&self) -> EpistemicComponentMergeReason
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more