Skip to main content

ReadSession

Struct ReadSession 

Source
pub struct ReadSession<C = ()> { /* private fields */ }
Expand description

Shared admission context for one composed read operation.

A session does not freeze cursors or create a transaction snapshot. Its readers, point reads and collections share memory dependencies. Grouped reader creation refuses saturated active slots instead of waiting on another reader in the group. Returned owners remain valid and charged after the session drops.

Implementations§

Source§

impl<C> ReadSession<C>
where C: ObjectCatalog,

Source

pub async fn read_object<T>( &self, key: &<T as StoredObject>::Key, version: ObjectVersion, ) -> Result<Option<ReadBatch<ObjectRevision<T>>>, Error>
where T: StoredObject, C: Contains<T>,

Source§

impl<C> ReadSession<C>

Source

pub async fn query(&self, query: Query) -> Result<QueryReader, Error>

Source§

impl<C> ReadSession<C>
where C: ObjectCatalog,

Source

pub async fn read_objects<T>( &self, read: ObjectRead<'_, T>, ) -> Result<ObjectReader<T>, Error>
where T: StoredObject, C: Contains<T>,

Source§

impl<C> ReadSession<C>

Source

pub async fn read_records<T>( &self, read: RecordRead, ) -> Result<RecordReader<T>, Error>
where T: Message + MemorySize,

Source§

impl<C> ReadSession<C>

Source

pub fn try_memory( &self, payload_bytes: NonZero<usize>, ) -> Result<RetainedMemory, Error>

Admits mutable metadata capacity in this session without waiting.

The claim includes a private owner allowance. Keep metadata and its claim under the same owner, and use try_grow_by before allocating incremental keys, nodes, replacement buffers or cursor metadata. Failed growth leaves existing data and admission unchanged.

Source

pub async fn read_file(&self, request: ReadFile) -> Result<FileReader, Error>

Source

pub fn collection<U>(&self) -> Result<ReadBatch<Vec<ReadBatch<U>>>, Error>
where U: MemorySize,

Creates an empty retained collection for this session’s projected pages.

Grow the outer Vec through ReadBatch::try_map, admitting the full temporary replacement backing before allocating it. Child pages retain their own claims. Keep dependent reads in this session; unrelated groups do not share its Held.

Trait Implementations§

Source§

impl<C> Clone for ReadSession<C>

Source§

fn clone(&self) -> ReadSession<C>

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

Auto Trait Implementations§

§

impl<C = ()> !RefUnwindSafe for ReadSession<C>

§

impl<C = ()> !UnwindSafe for ReadSession<C>

§

impl<C> Freeze for ReadSession<C>

§

impl<C> Send for ReadSession<C>
where StorageManager<C>: Send,

§

impl<C> Sync for ReadSession<C>
where StorageManager<C>: Sync,

§

impl<C> Unpin for ReadSession<C>

§

impl<C> UnsafeUnpin for ReadSession<C>

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<C, T> Catalogued<C> for T
where T: Into<C>,

Source§

fn catalogued(self) -> C

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> Instrument for T

Source§

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

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

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> Mutual<T> for T

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<R> RecordProjection<R> for R

Source§

fn project(&self) -> Option<&R>

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.
Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

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