pub struct MapUnion<Map>(/* private fields */);
Expand description
Map-union compound lattice.
Each key corresponds to a lattice value instance. Merging map-union lattices is done by unioning the keys and merging the values of intersecting keys.
Implementations§
source§impl<Map> MapUnion<Map>
impl<Map> MapUnion<Map>
sourcepub fn as_reveal_ref(&self) -> &Map
pub fn as_reveal_ref(&self) -> &Map
Reveal the inner value as a shared reference.
sourcepub fn as_reveal_mut(&mut self) -> &mut Map
pub fn as_reveal_mut(&mut self) -> &mut Map
Reveal the inner value as an exclusive reference.
sourcepub fn into_reveal(self) -> Map
pub fn into_reveal(self) -> Map
Gets the inner by value, consuming self.
Trait Implementations§
source§impl<Map, K, Val> Atomize for MapUnion<Map>where
Map: 'static + IntoIterator<Item = (K, Val)> + Keyed<Key = K, Item = Val> + Extend<(K, Val)> + for<'a> GetMut<&'a K, Item = Val>,
K: 'static + Clone,
Val: 'static + Atomize + LatticeFrom<<Val as Atomize>::Atom>,
impl<Map, K, Val> Atomize for MapUnion<Map>where
Map: 'static + IntoIterator<Item = (K, Val)> + Keyed<Key = K, Item = Val> + Extend<(K, Val)> + for<'a> GetMut<&'a K, Item = Val>,
K: 'static + Clone,
Val: 'static + Atomize + LatticeFrom<<Val as Atomize>::Atom>,
source§impl<Map, Val> DeepReveal for MapUnion<Map>where
Map: Keyed<Item = Val> + MapMapValues<Val>,
Val: DeepReveal,
impl<Map, Val> DeepReveal for MapUnion<Map>where
Map: Keyed<Item = Val> + MapMapValues<Val>,
Val: DeepReveal,
source§type Revealed = <Map as MapMapValues<Val>>::MapValue<<Val as DeepReveal>::Revealed>
type Revealed = <Map as MapMapValues<Val>>::MapValue<<Val as DeepReveal>::Revealed>
The underlying type when revealed.
source§fn deep_reveal(self) -> Self::Revealed
fn deep_reveal(self) -> Self::Revealed
Reveals the underlying lattice types recursively.
source§impl<'de, Map> Deserialize<'de> for MapUnion<Map>where
Map: Deserialize<'de>,
impl<'de, Map> Deserialize<'de> for MapUnion<Map>where
Map: Deserialize<'de>,
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
source§impl<MapA, MapB, MapOut, ValFunc> LatticeBimorphism<MapUnion<MapA>, MapUnion<MapB>> for KeyedBimorphism<MapOut, ValFunc>where
ValFunc: LatticeBimorphism<MapA::Item, MapB::Item>,
MapA: MapIter + SimpleKeyedRef + SimpleCollectionRef,
MapB: for<'a> GetKeyValue<&'a MapA::Key, Key = MapA::Key> + SimpleCollectionRef,
MapA::Key: Clone + Eq,
MapA::Item: Clone,
MapB::Item: Clone,
MapOut: Default + MapInsert<MapA::Key> + Collection<Item = ValFunc::Output>,
impl<MapA, MapB, MapOut, ValFunc> LatticeBimorphism<MapUnion<MapA>, MapUnion<MapB>> for KeyedBimorphism<MapOut, ValFunc>where
ValFunc: LatticeBimorphism<MapA::Item, MapB::Item>,
MapA: MapIter + SimpleKeyedRef + SimpleCollectionRef,
MapB: for<'a> GetKeyValue<&'a MapA::Key, Key = MapA::Key> + SimpleCollectionRef,
MapA::Key: Clone + Eq,
MapA::Item: Clone,
MapB::Item: Clone,
MapOut: Default + MapInsert<MapA::Key> + Collection<Item = ValFunc::Output>,
source§impl<MapSelf, MapOther, K, ValSelf, ValOther> LatticeFrom<MapUnion<MapOther>> for MapUnion<MapSelf>where
MapSelf: Keyed<Key = K, Item = ValSelf> + FromIterator<(K, ValSelf)>,
MapOther: IntoIterator<Item = (K, ValOther)>,
ValSelf: LatticeFrom<ValOther>,
impl<MapSelf, MapOther, K, ValSelf, ValOther> LatticeFrom<MapUnion<MapOther>> for MapUnion<MapSelf>where
MapSelf: Keyed<Key = K, Item = ValSelf> + FromIterator<(K, ValSelf)>,
MapOther: IntoIterator<Item = (K, ValOther)>,
ValSelf: LatticeFrom<ValOther>,
source§fn lattice_from(other: MapUnion<MapOther>) -> Self
fn lattice_from(other: MapUnion<MapOther>) -> Self
Convert from the
Other
lattice into Self
.source§impl<MapSelf, MapOther, K, ValSelf, ValOther> Merge<MapUnion<MapOther>> for MapUnion<MapSelf>where
MapSelf: Keyed<Key = K, Item = ValSelf> + Extend<(K, ValSelf)> + for<'a> GetMut<&'a K, Item = ValSelf>,
MapOther: IntoIterator<Item = (K, ValOther)>,
ValSelf: Merge<ValOther> + LatticeFrom<ValOther>,
ValOther: IsBot,
impl<MapSelf, MapOther, K, ValSelf, ValOther> Merge<MapUnion<MapOther>> for MapUnion<MapSelf>where
MapSelf: Keyed<Key = K, Item = ValSelf> + Extend<(K, ValSelf)> + for<'a> GetMut<&'a K, Item = ValSelf>,
MapOther: IntoIterator<Item = (K, ValOther)>,
ValSelf: Merge<ValOther> + LatticeFrom<ValOther>,
ValOther: IsBot,
source§impl<MapSelf, MapOther, K, ValSelf, ValOther> PartialEq<MapUnion<MapOther>> for MapUnion<MapSelf>
impl<MapSelf, MapOther, K, ValSelf, ValOther> PartialEq<MapUnion<MapOther>> for MapUnion<MapSelf>
source§impl<MapSelf, MapOther, K, ValSelf, ValOther> PartialOrd<MapUnion<MapOther>> for MapUnion<MapSelf>where
MapSelf: Map<K, ValSelf, Key = K, Item = ValSelf> + MapIter + SimpleKeyedRef,
MapOther: Map<K, ValOther, Key = K, Item = ValOther> + MapIter + SimpleKeyedRef,
ValSelf: PartialOrd<ValOther> + IsBot,
ValOther: IsBot,
impl<MapSelf, MapOther, K, ValSelf, ValOther> PartialOrd<MapUnion<MapOther>> for MapUnion<MapSelf>where
MapSelf: Map<K, ValSelf, Key = K, Item = ValSelf> + MapIter + SimpleKeyedRef,
MapOther: Map<K, ValOther, Key = K, Item = ValOther> + MapIter + SimpleKeyedRef,
ValSelf: PartialOrd<ValOther> + IsBot,
ValOther: IsBot,
impl<Map: Copy> Copy for MapUnion<Map>
impl<MapSelf> Eq for MapUnion<MapSelf>where
Self: PartialEq,
impl<MapSelf, MapOther> LatticeOrd<MapUnion<MapOther>> for MapUnion<MapSelf>where
Self: PartialOrd<MapUnion<MapOther>>,
Auto Trait Implementations§
impl<Map> Freeze for MapUnion<Map>where
Map: Freeze,
impl<Map> RefUnwindSafe for MapUnion<Map>where
Map: RefUnwindSafe,
impl<Map> Send for MapUnion<Map>where
Map: Send,
impl<Map> Sync for MapUnion<Map>where
Map: Sync,
impl<Map> Unpin for MapUnion<Map>where
Map: Unpin,
impl<Map> UnwindSafe for MapUnion<Map>where
Map: UnwindSafe,
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
source§impl<This, Other> NaiveLatticeOrd<Other> for This
impl<This, Other> NaiveLatticeOrd<Other> for This
source§fn naive_cmp(&self, other: &Rhs) -> Option<Ordering>
fn naive_cmp(&self, other: &Rhs) -> Option<Ordering>
Naive compare based on the
Merge::merge
method. This method can be very inefficient;
use PartialOrd::partial_cmp
instead. Read more