diff --git a/Cargo.lock b/Cargo.lock index c7064a8a1..b52ae94f4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4310,7 +4310,7 @@ dependencies = [ "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core 0.51.1", + "windows-core 0.52.0", ] [[package]] diff --git a/crates/sync/src/compressed.rs b/crates/sync/src/compressed.rs index 75bff0165..cf79e5f8f 100644 --- a/crates/sync/src/compressed.rs +++ b/crates/sync/src/compressed.rs @@ -5,7 +5,7 @@ use std::collections::BTreeMap; use serde::{Deserialize, Serialize}; use uhlc::NTP64; -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, Clone)] pub struct CompressedCRDTOperationsPerModel(pub Vec<(ModelId, CompressedCRDTOperationsPerRecord)>); pub type CompressedCRDTOperationsPerRecord = Vec<(RecordId, Vec)>; @@ -191,6 +191,14 @@ impl CompressedCRDTOperationsPerModel { } } +impl Iterator for CompressedCRDTOperationsPerModel { + type Item = (ModelId, CompressedCRDTOperationsPerRecord); + + fn next(&mut self) -> Option { + self.0.pop() + } +} + #[derive(PartialEq, Serialize, Deserialize, Clone, Debug)] pub struct CompressedCRDTOperation { pub timestamp: NTP64,