process_terminal/
settings.rs

1use crossterm::event::KeyCode;
2
3#[derive(Clone, PartialEq)]
4pub struct ProcessSettings {
5    pub messages: MessageSettings,
6    pub scroll: ScrollSettings,
7}
8
9impl ProcessSettings {
10    pub fn new(messages: MessageSettings) -> Self {
11        Self {
12            messages,
13            scroll: ScrollSettings::Disable,
14        }
15    }
16
17    pub fn new_with_scroll(messages: MessageSettings, scroll: ScrollSettings) -> Self {
18        Self { messages, scroll }
19    }
20}
21
22#[derive(Clone, PartialEq)]
23pub enum MessageSettings {
24    None,
25    Output,
26    Error,
27    All,
28}
29
30#[derive(Clone, PartialEq)]
31pub enum ScrollSettings {
32    Disable,
33    Enable {
34        up_right: KeyCode,
35        down_left: KeyCode,
36    },
37}
38
39impl ScrollSettings {
40    pub fn enable(up_right: KeyCode, down_left: KeyCode) -> Self {
41        ScrollSettings::Enable {
42            up_right,
43            down_left,
44        }
45    }
46}