Trait opendal::raw::oio::BlockingRead
source · pub trait BlockingRead: Send + Sync + 'static {
// Required methods
fn read(&mut self, buf: &mut [u8]) -> Result<usize>;
fn seek(&mut self, pos: SeekFrom) -> Result<u64>;
fn next(&mut self) -> Option<Result<Bytes>>;
}
Expand description
Read is the trait that OpenDAL returns to callers.
Read is compose of the following trait
Read
Seek
Iterator<Item = Result<Bytes>>
Read
is required to be implemented, Seek
and Iterator
is optional. We use Read
to make users life easier.
Required Methods§
Trait Implementations§
source§impl Iterator for dyn BlockingRead
impl Iterator for dyn BlockingRead
source§fn next(&mut self) -> Option<Self::Item>
fn next(&mut self) -> Option<Self::Item>
Advances the iterator and returns the next value. Read more
1.0.0 · source§fn size_hint(&self) -> (usize, Option<usize>)
fn size_hint(&self) -> (usize, Option<usize>)
Returns the bounds on the remaining length of the iterator. Read more
source§impl Read for dyn BlockingRead
impl Read for dyn BlockingRead
source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Pull some bytes from this source into the specified buffer, returning
how many bytes were read. Read more
1.36.0 · source§fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
Like
read
, except that it reads into a slice of buffers. Read moresource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)1.0.0 · source§fn read_to_end(&mut self, buf: &mut Vec<u8, Global>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8, Global>) -> Result<usize, Error>
Read all bytes until EOF in this source, placing them into
buf
. Read more1.0.0 · source§fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
Read all bytes until EOF in this source, appending them to
buf
. Read more1.6.0 · source§fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
Read the exact number of bytes required to fill
buf
. Read moresource§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Pull some bytes from this source into the specified buffer. Read more
source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Read the exact number of bytes required to fill
cursor
. Read moresource§impl Seek for dyn BlockingRead
impl Seek for dyn BlockingRead
source§fn seek(&mut self, pos: SeekFrom) -> Result<u64>
fn seek(&mut self, pos: SeekFrom) -> Result<u64>
Seek to an offset, in bytes, in a stream. Read more
1.55.0 · source§fn rewind(&mut self) -> Result<(), Error>
fn rewind(&mut self) -> Result<(), Error>
Rewind to the beginning of a stream. Read more
Implementations on Foreign Types§
source§impl BlockingRead for ()
impl BlockingRead for ()
source§impl<T: BlockingRead + ?Sized> BlockingRead for Box<T>
impl<T: BlockingRead + ?Sized> BlockingRead for Box<T>
Box<dyn BlockingRead>
won’t implement BlockingRead
automatically.
To make BlockingReader work as expected, we must add this impl.