pub struct SyncEngine { /* private fields */ }Expand description
Graph synchronization engine with adaptive strategy
Implementations§
Source§impl SyncEngine
impl SyncEngine
pub fn new(persistence: Persistence, instance_id: String) -> SyncEngine
Sourcepub async fn decide_sync_strategy(
&self,
session_id: &str,
graph_name: &str,
their_vector_clock: &VectorClock,
) -> Result<SyncType, Error>
pub async fn decide_sync_strategy( &self, session_id: &str, graph_name: &str, their_vector_clock: &VectorClock, ) -> Result<SyncType, Error>
Decide whether to use full or incremental sync based on changelog size
Sourcepub async fn sync_full(
&self,
session_id: &str,
graph_name: &str,
) -> Result<GraphSyncPayload, Error>
pub async fn sync_full( &self, session_id: &str, graph_name: &str, ) -> Result<GraphSyncPayload, Error>
Perform a full graph sync - send entire graph
Sourcepub async fn sync_incremental(
&self,
session_id: &str,
graph_name: &str,
their_vector_clock: &VectorClock,
) -> Result<GraphSyncPayload, Error>
pub async fn sync_incremental( &self, session_id: &str, graph_name: &str, their_vector_clock: &VectorClock, ) -> Result<GraphSyncPayload, Error>
Perform incremental sync - send only changes since their vector clock
Sourcepub async fn apply_sync(
&self,
payload: &GraphSyncPayload,
graph_name: &str,
) -> Result<SyncStats, Error>
pub async fn apply_sync( &self, payload: &GraphSyncPayload, graph_name: &str, ) -> Result<SyncStats, Error>
Apply incoming sync payload to local graph
Auto Trait Implementations§
impl Freeze for SyncEngine
impl RefUnwindSafe for SyncEngine
impl Send for SyncEngine
impl Sync for SyncEngine
impl Unpin for SyncEngine
impl UnwindSafe for SyncEngine
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more