Trait vortex_io::VortexReadAt
source · pub trait VortexReadAt:
Send
+ Sync
+ Clone
+ 'static {
// Required methods
fn read_byte_range(
&self,
pos: u64,
len: u64,
) -> impl Future<Output = Result<Buffer>> + 'static;
fn size(&self) -> impl Future<Output = Result<u64>> + 'static;
// Provided method
fn performance_hint(&self) -> usize { ... }
}
Expand description
A trait for types that support asynchronous reads.
References to the type must be safe to share across threads, but spawned
futures may be !Send
to support thread-per-core implementations.
Readers must be cheaply cloneable to allow for easy sharing across tasks or threads.
Required Methods§
sourcefn read_byte_range(
&self,
pos: u64,
len: u64,
) -> impl Future<Output = Result<Buffer>> + 'static
fn read_byte_range( &self, pos: u64, len: u64, ) -> impl Future<Output = Result<Buffer>> + 'static
Request an asynchronous positional read. Results will be returned as a [Buffer
].
If the reader does not have the requested number of bytes, the returned Future will complete
with an UnexpectedEof
.
§Thread Safety
The resultant Future need not be Send
, allowing implementations that use thread-per-core
executors.
Provided Methods§
fn performance_hint(&self) -> usize
Object Safety§
This trait is not object safe.