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.
//!
//! Today only [`CellMap`] implements this. When [`NestedMap`] lands, it will
//! implement the same trait, and the existing join logic will work with it
//! unchanged.
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.