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
41
42
43
44
45
46
47
48
49
50
//! Multi-device synchronization for OxiGDAL
//!
//! This crate provides advanced synchronization capabilities for distributed
//! geospatial data management, including:
//!
//! - **CRDTs (Conflict-free Replicated Data Types)**: LWW-Register, G-Counter,
//! PN-Counter, OR-Set for conflict-free distributed state
//! - **Vector Clocks**: Causality tracking for distributed events
//! - **Operational Transformation**: Concurrent edit reconciliation
//! - **Multi-device Coordination**: Device discovery and state management
//! - **Merkle Trees**: Efficient change detection and synchronization
//! - **Delta Encoding**: Bandwidth-efficient state transfer
//!
//! # Example
//!
//! ```rust,no_run
//! use oxigdal_sync::crdt::LwwRegister;
//! use oxigdal_sync::vector_clock::VectorClock;
//!
//! // Create a Last-Write-Wins register with vector clock
//! let mut register = LwwRegister::new("device-1".to_string(), "initial".to_string());
//!
//! // Update with causality tracking
//! register.set("updated".to_string());
//! ```
pub use ;
/// Device identifier type
pub type DeviceId = String;
/// Timestamp type for synchronization
pub type Timestamp = u64;
/// Version vector type for causality tracking
pub type VersionVector = HashMap;