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.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.