pub trait Atomize: Merge<Self::Atom> {
type Atom: 'static + IsBot;
type AtomIter: 'static + Iterator<Item = Self::Atom>;
// Required method
fn atomize(self) -> Self::AtomIter;
}
Expand description
Trait to atomize a lattice into individual elements. For example, a set_union::SetUnion
will be broken up into individual singleton elements.
Formally, breaks up Self
into an set of lattice points forming a (strong) antichain.
“Strong” in the sense that any pair of lattice points in the antichain should have a greatest
lower bound (GLB or “meet”) of bottom.
Required Associated Types§
Required Methods§
sourcefn atomize(self) -> Self::AtomIter
fn atomize(self) -> Self::AtomIter
Atomize self: convert into an iter of atoms.
The returned iterator should be empty if and only if self.is_bot()
is true.
All atoms in the returned iterator should have self.is_bot()
be false.
Returned values must merge to reform a value equal to the original self
.
Object Safety§
This trait is not object safe.