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
40
41
//! **What this seat sent, as rows** (DESIGN §4.45 item 4; bl-ca3d): one
//! operator row per message addressed to the selected conversation that the
//! committed transcript does not yet carry, after the committed rows and the
//! live fold.
//!
//! **The projection paints what stands and retires nothing.** Which records
//! stand is decided where each fact arrives — the receipt, the read, the
//! refusal (`crate::ui::model::Sent`) — so this is still a pure function of
//! the model, and the one thing it adds to [`super::rows`] is the end of the
//! list. It reads the whole model rather than a third argument because the
//! records are keyed by the selection, which the transcript alone cannot say.
use ;
use crateModel;
use crateSpeaker;
/// **The whole pane as data**: the committed rows with the live fold in its
/// place ([`rows`]), then what this seat sent here and the read has not
/// carried back ([`Model::sent_here`]).