[][src]Trait pergola::LatticeDef

pub trait LatticeDef: DefTraits {
    type T: ValTraits;
    pub fn unit() -> Self::T;
pub fn join(lhs: &Self::T, rhs: &Self::T) -> Self::T;
pub 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

Loading content...

Required methods

pub fn unit() -> Self::T[src]

pub fn join(lhs: &Self::T, rhs: &Self::T) -> Self::T[src]

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

Loading content...

Implementors

impl LatticeDef for BitSetWithIntersection[src]

type T = Option<BitSetWrapper>

impl LatticeDef for BitSetWithUnion[src]

type T = BitSetWrapper

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

type T = (LatticeElt<A>, LatticeElt<B>)

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

type T = (LatticeElt<A>, LatticeElt<B>, LatticeElt<C>)

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

type T = (LatticeElt<A>, LatticeElt<B>, LatticeElt<C>, LatticeElt<D>)

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

type T = (LatticeElt<A>, LatticeElt<B>, LatticeElt<C>, LatticeElt<D>, LatticeElt<E>)

impl<K: DefTraits, VD: LatticeDef> LatticeDef for ArcOrdMapWithIntersection<K, VD> where
    VD::T: Clone
[src]

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

impl<K: DefTraits, VD: LatticeDef> LatticeDef for ArcOrdMapWithUnion<K, VD> where
    VD::T: Clone
[src]

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

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

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

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

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

impl<K: DefTraits, VD: LatticeDef> LatticeDef for RcOrdMapWithIntersection<K, VD> where
    VD::T: Clone
[src]

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

impl<K: DefTraits, VD: LatticeDef> LatticeDef for RcOrdMapWithUnion<K, VD> where
    VD::T: Clone
[src]

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

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

type T = M

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

type T = M

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

type T = M

impl<M: DefTraits> LatticeDef for MinOpt<M>[src]

type T = Option<M>

impl<U: DefTraits> LatticeDef for ArcOrdSetWithIntersection<U>[src]

type T = Option<ArcOrdSet<U>>

impl<U: DefTraits> LatticeDef for ArcOrdSetWithUnion<U>[src]

type T = ArcOrdSet<U>

impl<U: DefTraits> LatticeDef for BTreeSetWithIntersection<U>[src]

type T = Option<BTreeSet<U>>

impl<U: DefTraits> LatticeDef for BTreeSetWithUnion<U>[src]

type T = BTreeSet<U>

impl<U: DefTraits> LatticeDef for RcOrdSetWithIntersection<U>[src]

type T = Option<RcOrdSet<U>>

impl<U: DefTraits> LatticeDef for RcOrdSetWithUnion<U>[src]

type T = RcOrdSet<U>

Loading content...