pub struct FileHandle { /* private fields */ }Expand description
Unified file handle for both inline (mmap/RAM) and lazy (HTTP/filesystem) access.
Replaces the previous FileSlice, LazyFileHandle, and LazyFileSlice types.
- Inline: data is available synchronously (mmap, RAM). Sync reads via
read_bytes_range_sync. - Lazy: data is fetched on-demand via async callback (HTTP, filesystem).
Use .slice() to create sub-range views (zero-copy for Inline, offset-adjusted for Lazy).
Implementations§
Source§impl FileHandle
impl FileHandle
Sourcepub fn from_bytes(data: OwnedBytes) -> Self
pub fn from_bytes(data: OwnedBytes) -> Self
Create an inline file handle from owned bytes (mmap, RAM). Sync reads are available.
Sourcepub fn lazy(len: u64, read_fn: RangeReadFn) -> Self
pub fn lazy(len: u64, read_fn: RangeReadFn) -> Self
Create a lazy file handle from an async range-read callback. Only async reads are available.
Sourcepub fn slice(&self, range: Range<u64>) -> Self
pub fn slice(&self, range: Range<u64>) -> Self
Create a sub-range view. Zero-copy for Inline, offset-adjusted for Lazy.
Sourcepub async fn read_bytes_range(&self, range: Range<u64>) -> Result<OwnedBytes>
pub async fn read_bytes_range(&self, range: Range<u64>) -> Result<OwnedBytes>
Async range read — works for both Inline and Lazy.
Sourcepub async fn read_bytes(&self) -> Result<OwnedBytes>
pub async fn read_bytes(&self) -> Result<OwnedBytes>
Read all bytes.
Sourcepub fn read_bytes_range_sync(&self, range: Range<u64>) -> Result<OwnedBytes>
pub fn read_bytes_range_sync(&self, range: Range<u64>) -> Result<OwnedBytes>
Synchronous range read — only works for Inline handles.
Returns Err if the handle is Lazy.
Sourcepub fn read_bytes_sync(&self) -> Result<OwnedBytes>
pub fn read_bytes_sync(&self) -> Result<OwnedBytes>
Synchronous read of all bytes — only works for Inline handles.
Trait Implementations§
Source§impl Clone for FileHandle
impl Clone for FileHandle
Source§fn clone(&self) -> FileHandle
fn clone(&self) -> FileHandle
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for FileHandle
impl !RefUnwindSafe for FileHandle
impl Send for FileHandle
impl Sync for FileHandle
impl Unpin for FileHandle
impl !UnwindSafe for FileHandle
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.