pub struct Stratification {
pub strata: Vec<Stratum>,
pub predicate_stratum: BTreeMap<PredicateSymbol, usize>,
}Expand description
Stratification of a Datalog¬ program.
Fields§
§strata: Vec<Stratum>Strata ordered by ascending index. Stratum k must be
evaluated to a fixed point before stratum k+1.
predicate_stratum: BTreeMap<PredicateSymbol, usize>Map from predicate to its stratum index. context-aware rolls up
the underlying (predicate, head-graph-class) dependency
nodes by taking the maximum stratum across head-graph
classes of the same predicate — so a producer that emits
facts in more than one graph class is scheduled late
enough for every downstream consumer.
Implementations§
Source§impl Stratification
impl Stratification
Sourcepub fn stratum_of(&self, predicate: &PredicateSymbol) -> Option<usize>
pub fn stratum_of(&self, predicate: &PredicateSymbol) -> Option<usize>
Returns the stratum index for a predicate, or None if
the predicate does not appear in the program (pure EDB
predicates not derived by any rule).
Trait Implementations§
Source§impl Clone for Stratification
impl Clone for Stratification
Source§impl Debug for Stratification
impl Debug for Stratification
impl Eq for Stratification
Source§impl PartialEq for Stratification
impl PartialEq for Stratification
impl StructuralPartialEq for Stratification
Auto Trait Implementations§
impl Freeze for Stratification
impl RefUnwindSafe for Stratification
impl Send for Stratification
impl Sync for Stratification
impl Unpin for Stratification
impl UnsafeUnpin for Stratification
impl UnwindSafe for Stratification
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