Skip to main content

SnapshotDecoder

Struct SnapshotDecoder 

Source
pub struct SnapshotDecoder(/* private fields */);
Expand description

Decodes a snapshot without retaining its rows or write history. The caller stages records and commits only after finish succeeds. Its oracle must describe the causally closed applied writes recorded by this snapshot. Populate that oracle from section 1. Loss records add no oracle metadata; the consumer validates active losses against merge rows. Only the header, counts and previous record identities are retained between frames. The database consumer checks cross-section completeness, SQL schema rules and app-row visibility; merge’s removal computation checks which removal rules actually hold.

Implementations§

Source§

impl SnapshotDecoder

Source

pub fn history_frame( &mut self, bytes: &[u8], ) -> Result<Option<SnapshotRecord>, Error>

Extract original slots and claim settlement evidence before the store’s historical signing keys are known. Other sections are counted and skipped; this is not row validation. A loader must subsequently decode the entire authenticated snapshot with frame before installing its data.

Source

pub fn start(frame: &[u8], prefix: &SnapshotObjectPrefix) -> Result<Self, Error>

Read the initial header frame using coverage from the authenticated sealed prefix.

Source

pub fn header(&self) -> &SnapshotHeader

Identity, schema and coverage of this snapshot.

Source

pub fn frame<O: WriteSlots>( &mut self, bytes: &[u8], oracle: &O, ) -> Result<Option<SnapshotRecord>, O::Error>
where O::Error: From<Error>,

Decode a record or end marker. Merge checks row invariants using the supplied oracle. Every error leaves counts and order unchanged.

Source

pub fn finish(&self) -> Result<(), Error>

Refuse truncation, including EOF between records without an end marker.

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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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 = 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.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,