Skip to main content

PreparedRecordCommit

Struct PreparedRecordCommit 

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

Immutable prepared replacements. Construct before opening a physical writer. The writes of a transaction larger than its allowance are in a spilled run ordered by key; the others are in memory in the order they were supplied.

Implementations§

Source§

impl PreparedRecordCommit

Source

pub fn new_at_snapshot( writes: &[RecordWrite<'_>], snapshot: &dyn CommittedRecordSnapshot, control: &StorageReadControl, ) -> VersionResult<Self>

Preserve the reclamation epoch of the actual snapshot used to evaluate these replacements. The snapshot must belong to the same provider/history as the transaction. A raw new batch has no such evidence and cannot assert absence in a prefix whose tombstones have been retired.

Source

pub fn validate_reclamation_epoch( &self, prefix: &[u8], minimum: u64, current: u64, control: &StorageReadControl, ) -> VersionResult<()>

Under the physical commit boundary, after resolving an original receipt, reject observations preceding this prefix’s last tombstone retirement. The provider publishes the floor atomically with deletion and captures epochs under snapshot admission. Other prefixes retain their ordinary revision contract.

Source§

impl PreparedRecordCommit

Source

pub fn required_keys(&self) -> impl Iterator<Item = &[u8]>

Keys validated without being written. Providers must charge any temporary driver bindings for these keys as well as replacement records.

Source§

impl PreparedRecordCommit

Source

pub fn new( writes: &[RecordWrite<'_>], control: &StorageReadControl, ) -> VersionResult<Self>

Source

pub fn len(&self) -> usize

The number of writes.

Source

pub fn is_empty(&self) -> bool

Source

pub fn writes(&self) -> PreparedWriteCursor<'_>

Visit the writes in order.

Source

pub fn spilled_writes_from( &self, start: &[u8], ) -> Option<PreparedWriteCursor<'_>>

Visit the writes of a spilled batch in key order from start; None for a batch in memory, whose writes resident returns in the order they were supplied.

Source

pub fn resident(&self) -> Option<&[PreparedRecordWrite]>

The writes, when they are in memory; a transaction larger than its allowance has spilled them.

Source

pub fn validate_snapshot(&self, current: CommitSequence) -> VersionResult<()>

Check the snapshot used to discover derived dependencies under exclusive admission, after resolving any existing receipt and before validating record heads. A mismatch proves this pending attempt has not published and permits pure effect preparation to restart.

Source

pub fn fingerprint(&self) -> CommitFingerprint

Source

pub fn validate( &self, control: &StorageReadControl, head_revision: impl FnMut(&[u8]) -> VersionResult<Option<CommitSequence>>, ) -> VersionResult<()>

Check all preconditions under the provider’s exclusive commit boundary. The callback reads current committed heads, not the caller’s old snapshot.

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> 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, 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.