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
42
43
44
45
46
47
48
//! Typed application messages — the one channel the main loop wakes on (ARCHITECTURE.md §7.1).
//!
//! Every off-loop producer funnels into this enum: the terminal input pump, the
//! filesystem worker, and the PTY, search, task, git, LSP, and ACP streams. The loop
//! blocks on the *channel*, never on any single source, which is what lets a file-watch
//! event repaint the tree without the user touching the keyboard (ADR-0005 §1).
//!
//! Backend-agnostic on purpose: crossterm types are translated in `app` before they get
//! here, so `core` stays free of any terminal backend.
use crateAgentEvent;
use crateFsEvent;
use crateGitEvent;
use crateKeyChord;
use cratePtyEvent;
use crateSearchEvent;
use crate::;
/// A message from an off-loop producer to the single owner of application state.
///
/// Exhaustive on purpose: adding a producer should break every loop that has not
/// decided what to do about it.