[][src]Trait pergola::LatticeDef

pub trait LatticeDef {
    type T;
    fn unit() -> Self::T;
fn join(lhs: &Self::T, rhs: &Self::T) -> Self::T;
fn partial_order(lhs: &Self::T, rhs: &Self::T) -> Option<Ordering>; }

Implement this trait on a (typically vacuous) type to define a specific lattice as a type-with-some-choice-of-operators.

Associated Types

type T

Loading content...

Required methods

fn unit() -> Self::T

fn join(lhs: &Self::T, rhs: &Self::T) -> Self::T

fn partial_order(lhs: &Self::T, rhs: &Self::T) -> Option<Ordering>

Loading content...

Implementors

impl LatticeDef for BitSetWithIntersection[src]

type T = Option<BitSet>

impl LatticeDef for BitSetWithUnion[src]

type T = BitSet

impl<A: LatticeDef, B: LatticeDef> LatticeDef for Tuple2<A, B>[src]

type T = (A::T, B::T)

impl<A: LatticeDef, B: LatticeDef, C: LatticeDef> LatticeDef for Tuple3<A, B, C>[src]

type T = (A::T, B::T, C::T)

impl<A: LatticeDef, B: LatticeDef, C: LatticeDef, D: LatticeDef> LatticeDef for Tuple4<A, B, C, D>[src]

type T = (A::T, B::T, C::T, D::T)

impl<A: LatticeDef, B: LatticeDef, C: LatticeDef, D: LatticeDef, E: LatticeDef> LatticeDef for Tuple5<A, B, C, D, E>[src]

type T = (A::T, B::T, C::T, D::T, E::T)

impl<K: Ord + Clone, VD: LatticeDef> LatticeDef for BTreeMapWithIntersection<K, VD> where
    VD::T: Clone
[src]

type T = Option<BTreeMap<K, LatticeElt<VD>>>

impl<K: Ord + Clone, VD: LatticeDef> LatticeDef for BTreeMapWithUnion<K, VD> where
    VD::T: Clone
[src]

type T = BTreeMap<K, LatticeElt<VD>>

impl<M: Ord + Clone + MaxUnitDefault> LatticeDef for MaxDef<M>[src]

type T = M

impl<M: Ord + Clone + MaxUnitMinValue> LatticeDef for MaxNum<M>[src]

type T = M

impl<M: Ord + Clone + Bounded> LatticeDef for MinNum<M>[src]

type T = M

impl<M: Ord + Clone> LatticeDef for MinOpt<M>[src]

type T = Option<M>

impl<U: Clone + Ord> LatticeDef for BTreeSetWithIntersection<U>[src]

type T = Option<BTreeSet<U>>

impl<U: Clone + Ord> LatticeDef for BTreeSetWithUnion<U>[src]

type T = BTreeSet<U>

Loading content...