Skip to main content

ObjectReadSnapshot

Struct ObjectReadSnapshot 

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

Read-only object access for one operation’s lifetime (RFC 111 §6.1). Takes one decoded index snapshot at construction and never re-decodes – correct because a reader never writes, so it can never observe its own write as missing the way a writer holding a stale snapshot could (RFC 111 Q3). A snapshot taken here may miss an object a concurrent writer appends after construction; that is verify’s own already-documented point-in-time semantics, unchanged by this type (RFC 111 Q4).

Implementations§

Source§

impl ObjectReadSnapshot

Source

pub fn open(layout: &RepositoryLayout) -> Result<Self>

Open a read-only snapshot of layout’s object index, decoding it exactly once.

Source

pub fn contains_object(&self, object_type: ObjectType, id: ObjectId) -> bool

Return true if an object with this id and type is indexed, as of when this snapshot was taken.

Trait Implementations§

Source§

impl ObjectReader for ObjectReadSnapshot

Source§

fn read_object(&self, id: ObjectId) -> Result<Option<ObjectEnvelope>>

Read an object by ID.
Source§

fn read_typed( &self, id: ObjectId, object_type: ObjectType, ) -> Result<Option<ObjectEnvelope>>

Read and require a specific object type. Default-implemented in terms of read_object alone (RFC 111 §6.1: every implementor – FileObjectStore, ObjectReadSnapshot, ObjectWriteSession, MemoryObjectStore – gets this for free, and any function generic over impl ObjectReader can call it without depending on a concrete type). One body, not one per implementor (Stage 1 review v1 §3): every concrete type’s own read_typed delegates here too.

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