pub trait IncrBTreeMap<K: Value + Ord, V: Value> {
// Required methods
fn incr_mapi_<F, V2>(&self, f: F) -> Incr<BTreeMap<K, V2>>
where V2: Value,
F: FnMut(&K, Incr<V>) -> Incr<V2> + 'static + NotObserver;
fn incr_mapi_cutoff<F, V2>(
&self,
f: F,
cutoff: Cutoff<V>,
) -> Incr<BTreeMap<K, V2>>
where V2: Value,
F: FnMut(&K, Incr<V>) -> Incr<V2> + 'static + NotObserver;
fn incr_filter_mapi_<F, V2>(&self, f: F) -> Incr<BTreeMap<K, V2>>
where V2: Value,
F: FnMut(&K, Incr<V>) -> Incr<Option<V2>> + 'static + NotObserver;
fn incr_filter_mapi_cutoff<F, V2>(
&self,
f: F,
cutoff: Cutoff<V>,
) -> Incr<BTreeMap<K, V2>>
where V2: Value,
F: FnMut(&K, Incr<V>) -> Incr<Option<V2>> + 'static + NotObserver;
fn incr_merge<F, V2, R>(
&self,
other: &Incr<BTreeMap<K, V2>>,
f: F,
) -> Incr<BTreeMap<K, R>>
where V2: Value,
R: Value,
F: FnMut(&K, MergeElement<&V, &V2>) -> Option<R> + 'static + NotObserver;
}
Required Methods§
fn incr_mapi_<F, V2>(&self, f: F) -> Incr<BTreeMap<K, V2>>
fn incr_mapi_cutoff<F, V2>( &self, f: F, cutoff: Cutoff<V>, ) -> Incr<BTreeMap<K, V2>>
fn incr_filter_mapi_<F, V2>(&self, f: F) -> Incr<BTreeMap<K, V2>>
fn incr_filter_mapi_cutoff<F, V2>( &self, f: F, cutoff: Cutoff<V>, ) -> Incr<BTreeMap<K, V2>>
fn incr_merge<F, V2, R>(
&self,
other: &Incr<BTreeMap<K, V2>>,
f: F,
) -> Incr<BTreeMap<K, R>>where
V2: Value,
R: Value,
F: FnMut(&K, MergeElement<&V, &V2>) -> Option<R> + 'static + NotObserver,
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.
Implementations on Foreign Types§
Source§impl<K: Value + Ord, V: Value> IncrBTreeMap<K, V> for Incr<BTreeMap<K, V>>
impl<K: Value + Ord, V: Value> IncrBTreeMap<K, V> for Incr<BTreeMap<K, V>>
Source§fn incr_merge<F, V2, R>(
&self,
other: &Incr<BTreeMap<K, V2>>,
f: F,
) -> Incr<BTreeMap<K, R>>where
V2: Value,
R: Value,
F: FnMut(&K, MergeElement<&V, &V2>) -> Option<R> + 'static + NotObserver,
fn incr_merge<F, V2, R>(
&self,
other: &Incr<BTreeMap<K, V2>>,
f: F,
) -> Incr<BTreeMap<K, R>>where
V2: Value,
R: Value,
F: FnMut(&K, MergeElement<&V, &V2>) -> Option<R> + 'static + NotObserver,
Merge two maps incrementally, where
- if a key appears only in self, the predicate runs with
MergeElement::Left
- if a key appears only in other, the predicate runs with
MergeElement::Right
- if a key appears in both, the predicate runs with
MergeElement::Both
The predicate is only re-run for added/removed/modified keys in each map, using the symmetric diff property.