Writer

Struct Writer 

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

A memory-mapped file into which this writer adds new snapshot.

Implementations§

Source§

impl Writer

Public interface of the writer.

Source

pub fn commit( &mut self, data: &[u8], ) -> Result<SnapshotIndex, WriterCommitError>

Insert some data into the atomic log of the shared memory.

Source

pub fn commit_with<T>( &mut self, data: &[u8], intermediate: impl FnOnce(PreparedTransaction<'_>) -> Option<T>, ) -> Result<(SnapshotIndex, T), WriterCommitError>

Insert some data into the atomic log of the shared memory.

This also invokes a function such that it’s effects are sequenced after the reservation of the new slot but before committing the data. The function can also introduce changes that appear correctly from the semantics view of the ring. Changes to the tail can be made via the passed PreparedTransaction object.

Source

pub fn snapshot_at(&self, idx: SnapshotIndex) -> Snapshot

Read the snapshot associated with a written index.

Source

pub fn read(&self, snapshot: &Snapshot, buffer: &mut [u8])

Read data described by a snapshot, with discovered metadata in the file.

Source

pub fn valid(&self, into: &mut impl Extend<Snapshot>)

Collect all currently valid snapshot entries.

Source

pub fn tail(&self) -> &[AtomicU64]

Access the tail of the underlying shared memory file.

This refers to the portion of the file after the header, the entry ring, and the data ring buffer. This data can not be referenced by an entry directly and belongs to arbitrary use by the caller.

Auto Trait Implementations§

§

impl Freeze for Writer

§

impl RefUnwindSafe for Writer

§

impl Send for Writer

§

impl Sync for Writer

§

impl Unpin for Writer

§

impl UnwindSafe for Writer

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> 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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.