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 (K3 split 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
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Ord for EpistemicComponentMergeReason
impl Ord for EpistemicComponentMergeReason
Source§fn cmp(&self, other: &EpistemicComponentMergeReason) -> Ordering
fn cmp(&self, other: &EpistemicComponentMergeReason) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for EpistemicComponentMergeReason
impl PartialEq for EpistemicComponentMergeReason
Source§fn eq(&self, other: &EpistemicComponentMergeReason) -> bool
fn eq(&self, other: &EpistemicComponentMergeReason) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl PartialOrd for EpistemicComponentMergeReason
impl PartialOrd for EpistemicComponentMergeReason
impl Eq for EpistemicComponentMergeReason
impl StructuralPartialEq for EpistemicComponentMergeReason
Auto Trait Implementations§
impl Freeze for EpistemicComponentMergeReason
impl RefUnwindSafe for EpistemicComponentMergeReason
impl Send for EpistemicComponentMergeReason
impl Sync for EpistemicComponentMergeReason
impl Unpin for EpistemicComponentMergeReason
impl UnsafeUnpin for EpistemicComponentMergeReason
impl UnwindSafe for EpistemicComponentMergeReason
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more