pub struct DelayedSyncBlob<B> { /* private fields */ }Expand description
Blob wrapper that parks each started sync and supports one-shot blocking sync tracking.
A started sync keeps the wrapped blob, and with it the logical open, alive until its handle completes or drops.
Implementations§
Source§impl<B> DelayedSyncBlob<B>
impl<B> DelayedSyncBlob<B>
Sourcepub fn new(inner: B) -> (Self, PendingSyncs)
pub fn new(inner: B) -> (Self, PendingSyncs)
Wrap inner, returning the blob and the list its deferred syncs are pushed onto.
Trait Implementations§
Source§impl<B: Blob> Blob for DelayedSyncBlob<B>
impl<B: Blob> Blob for DelayedSyncBlob<B>
Source§async fn read_at_buf(
&self,
offset: u64,
len: usize,
bufs: impl Into<IoBufsMut> + Send,
options: ReadOptions,
) -> Result<IoBufsMut, Error>
async fn read_at_buf( &self, offset: u64, len: usize, bufs: impl Into<IoBufsMut> + Send, options: ReadOptions, ) -> Result<IoBufsMut, Error>
Source§async fn read_at(
&self,
offset: u64,
len: usize,
options: ReadOptions,
) -> Result<IoBufsMut, Error>
async fn read_at( &self, offset: u64, len: usize, options: ReadOptions, ) -> Result<IoBufsMut, Error>
Source§async fn write_at(
&self,
offset: u64,
bufs: impl Into<IoBufs> + Send,
options: WriteOptions,
) -> Result<(), Error>
async fn write_at( &self, offset: u64, bufs: impl Into<IoBufs> + Send, options: WriteOptions, ) -> Result<(), Error>
Source§async fn resize(&self, len: u64) -> Result<(), Error>
async fn resize(&self, len: u64) -> Result<(), Error>
Resize the blob to the given length. Read more
Source§async fn sync(&self) -> Result<(), Error>
async fn sync(&self) -> Result<(), Error>
Make every write and resize that completed before this call durable.
Source§async fn start_sync(&self) -> Handle<()> ⓘ
async fn start_sync(&self) -> Handle<()> ⓘ
Request that every write and resize that completed before this call is durable. Read more
Source§fn read_many(
&self,
ranges: &[(u64, usize)],
options: ReadOptions,
) -> impl Stream<Item = Result<(usize, IoBufsMut), Error>> + Send
fn read_many( &self, ranges: &[(u64, usize)], options: ReadOptions, ) -> impl Stream<Item = Result<(usize, IoBufsMut), Error>> + Send
Read every
(offset, len) range in ranges, yielding (range index, buffer) as each
read completes, in any order. Each buffer holds the len bytes at offset. Read moreAuto Trait Implementations§
impl<B> !RefUnwindSafe for DelayedSyncBlob<B>
impl<B> !UnwindSafe for DelayedSyncBlob<B>
impl<B> Freeze for DelayedSyncBlob<B>
impl<B> Send for DelayedSyncBlob<B>
impl<B> Sync for DelayedSyncBlob<B>
impl<B> Unpin for DelayedSyncBlob<B>
impl<B> UnsafeUnpin for DelayedSyncBlob<B>where
Arc<B>: UnsafeUnpin,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more