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. All context nodes of a predicate share scheduling constraints because a public stratum evaluates the entire predicate. Every negative or aggregate dependency must therefore refer to a predicate in a strictly lower stratum.
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
Source§impl<'de> Deserialize<'de> for Stratification
impl<'de> Deserialize<'de> for Stratification
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for Stratification
Source§impl PartialEq for Stratification
impl PartialEq for Stratification
Source§impl Serialize for Stratification
impl Serialize 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