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
use crate::git::Diff;

#[derive(Clone)]
pub struct AppState {
    counter_tick: u64,
    console: Vec<String>,
    diff: Diff,
}

impl AppState {
    pub fn new(diff: Diff) -> Self {
        let counter_tick = 0;

        Self {
            counter_tick,
            console: vec![],
            diff,
        }
    }

    pub fn incr_tick(&mut self) {
        self.counter_tick += 1
    }

    pub fn count_tick(&self) -> Option<u64> {
        Some(self.counter_tick)
    }

    pub fn console(&self) -> Option<&Vec<String>> {
        Some(&self.console)
    }

    pub fn diff(&self) -> Option<&Diff> {
        Some(&self.diff)
    }

    pub fn send_to_console(&mut self, content: String) {
        self.console.push(content)
    }
}