Skip to main content

InMemoryReplicationLog

Struct InMemoryReplicationLog 

Source
pub struct InMemoryReplicationLog { /* private fields */ }
Expand description

In-memory replication log for local sync scenarios.

Implementations§

Source§

impl InMemoryReplicationLog

Source

pub fn new() -> Self

Creates an empty process-local replication log.

Source

pub fn append_with_sequence( &mut self, record: Vec<u8>, sequence: u64, ) -> SyncResult<usize>

Idempotently appends a record at a source sequence.

Source

pub fn last_index(&self) -> usize

Returns the one-based final log index, or zero when empty.

Source

pub fn contains_sequence(&self, sequence: u64) -> bool

Reports whether a source sequence is present.

Source

pub fn restore_snapshot_owned( &mut self, snapshot: ReplicationSnapshot, ) -> SyncResult<()>

Restores a snapshot by moving its payload allocations into the log.

This consuming variant avoids retaining the source snapshot and the destination record payloads at the same time. Use the trait method ReplicationLog::restore_snapshot when the caller must keep a borrowed snapshot for compatibility.

Trait Implementations§

Source§

impl Clone for InMemoryReplicationLog

Source§

fn clone(&self) -> InMemoryReplicationLog

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for InMemoryReplicationLog

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for InMemoryReplicationLog

Source§

fn default() -> InMemoryReplicationLog

Returns the “default value” for a type. Read more
Source§

impl Eq for InMemoryReplicationLog

Source§

impl PartialEq for InMemoryReplicationLog

Source§

fn eq(&self, other: &InMemoryReplicationLog) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl ReplicationLog for InMemoryReplicationLog

Source§

fn append(&mut self, record: Vec<u8>) -> SyncResult<usize>

Appends an unsequenced record and returns its one-based log index.
Source§

fn append_with_sequence( &mut self, record: Vec<u8>, sequence: u64, ) -> SyncResult<usize>

Idempotently appends record at a source sequence.
Source§

fn event_at_sequence(&self, sequence: u64) -> SyncResult<Option<Vec<u8>>>

Returns the payload at a source sequence when sequence lookup is supported.
Source§

fn events_since(&self, index: usize) -> SyncResult<Vec<Vec<u8>>>

Returns payloads after the supplied zero-based log offset.
Source§

fn events_page( &self, index: usize, max_records: usize, max_bytes: usize, ) -> SyncResult<Vec<Vec<u8>>>

Returns one payload page with bounded record count and payload bytes. Read more
Source§

fn len(&self) -> SyncResult<usize>

Returns the number of records in the log.
Source§

fn last_index(&self) -> SyncResult<usize>

Returns the one-based final log index, or zero for an empty log.
Source§

fn is_empty(&self) -> SyncResult<bool>

Reports whether the log contains no records.
Source§

fn create_snapshot(&self) -> SyncResult<ReplicationSnapshot>

Creates a validated portable snapshot when supported.
Source§

fn restore_snapshot(&mut self, snapshot: &ReplicationSnapshot) -> SyncResult<()>

Atomically replaces log contents from a validated snapshot when supported.
Source§

impl StructuralPartialEq for InMemoryReplicationLog

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.