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
pub type RepeatCount = usize;

#[derive(Debug, Clone, Copy)]
pub enum Movement {
    BackwardChar(RepeatCount),
    BackwardWord(RepeatCount),
    ForwardChar(RepeatCount),
    ForwardWord(RepeatCount),
    StartOfLine,
    EndOfLine,
    None,
}

#[derive(Debug, Clone)]
pub enum Action {
    AcceptLine,
    Cancel,
    EndOfFile,
    InsertChar(RepeatCount, char),
    InsertText(RepeatCount, String),
    Repaint,
    Move(Movement),
    Kill(Movement),
    KillAndMove(Movement, Movement),
    HistoryPrevious,
    HistoryNext,
    Complete,
    NoAction,
    HistoryIncSearchBackwards,
    HistoryIncSearchForwards,
}