pub struct BlockingWriter { /* private fields */ }Expand description
Blocking writer using mutex-guarded file I/O
This is the portable implementation using parking_lot::Mutex<std::fs::File>.
It provides the same API that a future io_uring backend would expose,
allowing transparent upgrades on Linux 5.6+.
§⚠️ Blocking I/O
All methods (write, flush, sync) perform synchronous file I/O
under a blocking mutex. Do not call from async contexts (tokio worker
threads) — use tokio::task::spawn_blocking to wrap calls, or use the
async AsyncFile from async_io.rs instead.
Implementations§
Source§impl BlockingWriter
impl BlockingWriter
Sourcepub fn new(path: impl AsRef<Path>, config: IoUringConfig) -> Result<Self>
pub fn new(path: impl AsRef<Path>, config: IoUringConfig) -> Result<Self>
Create a new blocking writer
Sourcepub fn open(path: impl AsRef<Path>, config: IoUringConfig) -> Result<Self>
pub fn open(path: impl AsRef<Path>, config: IoUringConfig) -> Result<Self>
Open an existing file for writing
Sourcepub fn stats(&self) -> IoUringStatsSnapshot
pub fn stats(&self) -> IoUringStatsSnapshot
Get statistics
Auto Trait Implementations§
impl !Freeze for BlockingWriter
impl !RefUnwindSafe for BlockingWriter
impl Send for BlockingWriter
impl Sync for BlockingWriter
impl Unpin for BlockingWriter
impl UnsafeUnpin for BlockingWriter
impl UnwindSafe for BlockingWriter
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
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