kmp_application/memory/
write_clocks.rs1use super::{MemoryData, WriteClockCoverage};
2
3#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
5pub struct WriteClocks {
6 #[serde(default, skip_serializing_if = "Option::is_none")]
7 pub relations: Option<super::WriteRelationClocks>,
8 pub entries: usize,
9 pub occurred: WriteClockCoverage,
10 pub observed: WriteClockCoverage,
11 pub ingested: WriteClockCoverage,
12 pub valid_from: WriteClockCoverage,
13 pub valid_until: WriteClockCoverage,
14}
15
16impl WriteClocks {
17 pub(super) fn for_memory(memory: &MemoryData) -> Self {
18 Self {
19 relations: Some(super::WriteRelationClocks::for_memory(memory)),
20 entries: memory.entries.len(),
21 occurred: WriteClockCoverage::for_memory(memory, |c| c.occurred_at.as_deref()),
22 observed: WriteClockCoverage::for_memory(memory, |c| c.observed_at.as_deref()),
23 ingested: WriteClockCoverage::for_memory(memory, |c| c.ingested_at.as_deref()),
24 valid_from: WriteClockCoverage::for_memory(memory, |c| c.valid_from.as_deref()),
25 valid_until: WriteClockCoverage::for_memory(memory, |c| c.valid_until.as_deref()),
26 }
27 }
28}