pub struct LogSync<L, E, S, Evt> { /* private fields */ }Expand description
Efficient sync protocol for append-only log data types.
Implementations§
Trait Implementations§
Source§impl<L, E, S, Evt> Protocol for LogSync<L, E, S, Evt>where
L: LogId + for<'de> Deserialize<'de> + Serialize + Send + 'static,
E: Extensions + Send + 'static,
S: LogStore<L, E> + OperationStore<L, E> + Send + 'static,
Evt: Debug + From<LogSyncEvent<E>> + Send + 'static,
impl<L, E, S, Evt> Protocol for LogSync<L, E, S, Evt>where
L: LogId + for<'de> Deserialize<'de> + Serialize + Send + 'static,
E: Extensions + Send + 'static,
S: LogStore<L, E> + OperationStore<L, E> + Send + 'static,
Evt: Debug + From<LogSyncEvent<E>> + Send + 'static,
type Error = LogSyncError
type Output = Dedup<Hash>
type Message = LogSyncMessage<L>
async fn run( self, sink: &mut (impl Sink<Self::Message, Error = impl Debug> + Unpin), stream: &mut (impl Stream<Item = Result<Self::Message, impl Debug>> + Unpin), ) -> Result<Self::Output, Self::Error>
Auto Trait Implementations§
impl<L, E, S, Evt> Freeze for LogSync<L, E, S, Evt>where
S: Freeze,
impl<L, E, S, Evt> RefUnwindSafe for LogSync<L, E, S, Evt>
impl<L, E, S, Evt> Send for LogSync<L, E, S, Evt>
impl<L, E, S, Evt> Sync for LogSync<L, E, S, Evt>
impl<L, E, S, Evt> Unpin for LogSync<L, E, S, Evt>
impl<L, E, S, Evt> UnwindSafe for LogSync<L, E, S, Evt>
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