flams_ontology/
file_states.rs1use 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}