flams_ontology/
file_states.rs

1use flams_utils::time::Timestamp;
2
3#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
4#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5#[cfg_attr(feature = "wasm", derive(tsify_next::Tsify))]
6#[cfg_attr(feature = "wasm", tsify(into_wasm_abi, from_wasm_abi))]
7pub struct FileStateSummary {
8    pub new: u32,
9    pub stale: u32,
10    pub deleted: u32,
11    pub up_to_date: u32,
12    pub last_built: Timestamp,
13    pub last_changed: Timestamp,
14}
15impl Default for FileStateSummary {
16    fn default() -> Self {
17        Self {
18            new: 0,
19            stale: 0,
20            up_to_date: 0,
21            deleted: 0,
22            last_built: Timestamp::zero(),
23            last_changed: Timestamp::zero(),
24        }
25    }
26}
27impl FileStateSummary {
28    pub fn merge(&mut self, other: Self) {
29        self.new += other.new;
30        self.stale += other.stale;
31        self.deleted += other.deleted;
32        self.up_to_date += other.up_to_date;
33        self.last_built = self.last_built.max(other.last_built);
34        self.last_changed = self.last_changed.max(other.last_changed);
35    }
36}