Trait StateSynchronization

Source
pub trait StateSynchronization {
    // Required methods
    fn init(config: SyncConfig) -> Result<(), SyncError>;
    fn start_sync(&mut self) -> Result<(), SyncError>;
    fn stop_sync(&mut self) -> Result<(), SyncError>;
    fn request_state(&mut self) -> Result<ProtocolState, SyncError>;
    fn send_state(&mut self, state: &ProtocolState) -> Result<(), SyncError>;
    fn resolve_conflicts(
        &mut self,
        states: Vec<ProtocolState>,
    ) -> Result<ProtocolState, SyncError>;
}
Expand description

State synchronization trait defining the interface for sync operations.

Required Methods§

Source

fn init(config: SyncConfig) -> Result<(), SyncError>

Initialize synchronization with configuration.

Source

fn start_sync(&mut self) -> Result<(), SyncError>

Start state synchronization.

Source

fn stop_sync(&mut self) -> Result<(), SyncError>

Stop state synchronization.

Source

fn request_state(&mut self) -> Result<ProtocolState, SyncError>

Request state from peers.

Source

fn send_state(&mut self, state: &ProtocolState) -> Result<(), SyncError>

Send state to peers.

Source

fn resolve_conflicts( &mut self, states: Vec<ProtocolState>, ) -> Result<ProtocolState, SyncError>

Resolve state conflicts.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§