aven_core/sync/persistence/
status.rs1use anyhow::Result;
2
3use crate::db::{Database, get_meta};
4
5use super::SyncPersistenceStatus;
6
7impl Database {
8 pub async fn sync_persistence_status(&self) -> Result<SyncPersistenceStatus> {
10 let mut conn = self.acquire_reader().await?;
11 let pending_changes =
12 sqlx::query_scalar("SELECT count(*) FROM changes WHERE server_seq IS NULL")
13 .fetch_one(&mut *conn)
14 .await?;
15 let conflicts = sqlx::query_scalar("SELECT count(*) FROM conflicts WHERE resolved = 0")
16 .fetch_one(&mut *conn)
17 .await?;
18 Ok(SyncPersistenceStatus {
19 pending_changes,
20 conflicts,
21 sync_cursor: get_meta(&mut conn, "sync_cursor").await?,
22 local_sequence: get_meta(&mut conn, "local_seq").await?,
23 })
24 }
25}