1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//! Reactive map abstraction — extends [`ReactiveKeys`] with values.
//!
//! `ReactiveMap` is the full interface a collection exposes for joins: keys,
//! values, point-in-time lookups, and diff-level subscriptions. Any type that
//! implements `ReactiveMap` can appear on either side of an `inner_join`,
//! `left_join`, `left_semi_join`, etc.
//!
//! [`CellMap`](crate::CellMap) and [`NestedMap`](crate::NestedMap) both implement this interface. Unmaterialized
//! derived operations are [`MapQuery`](crate::MapQuery) plans rather than
//! `ReactiveMap` values; materialization produces the observable `CellMap`.
use ReactiveKeys;
use crate::;
/// A reactive key-value map that notifies subscribers of changes via
/// [`MapDiff`].
///
/// This is the interface the join runtime operates against. By programming
/// against `ReactiveMap` rather than `CellMap` directly, joins compose with
/// any map-like source — `CellMap`, `NestedMap`, or a derived map from a
/// previous join.