Skip to main content

PinnedReader

Struct PinnedReader 

Source
pub struct PinnedReader<A, O> { /* private fields */ }
Expand description

Cheap immutable reader over one authenticated pinned checkout candidate.

Clones share the underlying stores and immutable generation root. Reads do not mutate checkout dependency state, so independent requests may overlap.

Implementations§

Source§

impl<A: AsyncAuthorityStore, O: AsyncObjectStore> PinnedReader<A, O>

Source

pub async fn list_directory_pages( &self, requests: &[DirectoryPageRequest], concurrency: usize, budget: WorkBudget, cancellation: &CancellationToken, ) -> FsResult<Vec<DirectoryPage>>

Lists ordered directory binding pages with at most concurrency requests in flight while preserving input order. Finite budgets are consumed sequentially so concurrent requests cannot each admit the complete group budget.

Source

pub async fn resolve_directory_page( &self, path: &NamespacePath, after: Option<&LogicalName>, maximum_entries: u32, budget: WorkBudget, cancellation: &CancellationToken, ) -> FsResult<ResolvedDirectoryPage<A, O>>

Resolves one bounded directory page into generation-scoped child handles in the same authenticated traversal. Child metadata is fetched as one object batch; no child path is looked up again.

Source

pub async fn plan_file_extents( &self, path: &NamespacePath, range: ByteRange, maximum_spans: u32, budget: WorkBudget, cancellation: &CancellationToken, ) -> FsResult<Option<ExtentPlan>>

Plans sparse physical spans without reading content bodies.

Source

pub async fn read_file_range( &self, path: &NamespacePath, range: ByteRange, budget: WorkBudget, cancellation: &CancellationToken, ) -> FsResult<FileRangeRead>

Reads one exact logical range without mutating checkout state.

Reads exact opaque symbolic-link target bytes without following it.

Source

pub async fn read_metadata( &self, path: &NamespacePath, budget: WorkBudget, cancellation: &CancellationToken, ) -> FsResult<FileMetadata>

Reads complete canonical metadata for one exact path.

Source

pub async fn describe_files( &self, paths: &[NamespacePath], budget: WorkBudget, cancellation: &CancellationToken, ) -> FsResult<Vec<Option<FileDescription>>>

Describes an ordered path batch while sharing namespace and object traversal.

Source

pub async fn resolve_files( &self, paths: &[NamespacePath], budget: WorkBudget, cancellation: &CancellationToken, ) -> FsResult<Vec<Option<ResolvedFile<A, O>>>>

Resolves and describes paths once, returning reader-scoped handles for later body reads without another namespace traversal.

Source

pub async fn read_resolved_ranges( &self, requests: &[ResolvedFileRangeReadRequest<'_, A, O>], concurrency: usize, budget: WorkBudget, cancellation: &CancellationToken, ) -> FsResult<Vec<FileRangeRead>>

Reads ranges from already resolved files with bounded concurrency and no additional namespace traversal.

Trait Implementations§

Source§

impl<A, O> Clone for PinnedReader<A, O>

Source§

fn clone(&self) -> Self

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<A, O> !RefUnwindSafe for PinnedReader<A, O>

§

impl<A, O> !UnwindSafe for PinnedReader<A, O>

§

impl<A, O> Freeze for PinnedReader<A, O>
where Volume<A, O>: Freeze,

§

impl<A, O> Send for PinnedReader<A, O>
where Volume<A, O>: Send,

§

impl<A, O> Sync for PinnedReader<A, O>
where Volume<A, O>: Sync,

§

impl<A, O> Unpin for PinnedReader<A, O>
where Volume<A, O>: Unpin,

§

impl<A, O> UnsafeUnpin for PinnedReader<A, O>
where Volume<A, O>: UnsafeUnpin,

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<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> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
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> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

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

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> StorageFuture for T
where T: Send,

Source§

impl<T> StorageProvider for T
where T: Send + Sync + ?Sized,

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