Struct olio::fs::rc::ReadPos
[−]
[src]
pub struct ReadPos { /* fields omitted */ }
Re-implements Read
and Seek
over a shared File
reference using
only positioned reads, and by maintaining an instance independent
position.
A fixed length
is passed on construction and used solely to interpret
SeekFrom::End
. Reads are not constrained by this length. The length is
neither checked nor updated via file metadata, and could deviate from the
underlying file length if concurrent writes or truncation is
possible. Reads beyond the end of the underlying File
will return 0
length. Seeking past the end is allowed by the platforms for File
, and
is also allowed for ReadPos
.
Methods
impl ReadPos
[src]
ⓘImportant traits for ReadPospub fn new(file: Arc<File>, length: u64) -> ReadPos
[src]
New instance by File
reference and fixed file length. The initial
position is the start of the file.
pub fn len(&self) -> u64
[src]
Return the length as provided on construction. This may differ from the underlying file length.
pub fn is_empty(&self) -> bool
[src]
Return true
if length is 0.
ⓘImportant traits for ReadSlicepub fn subslice(&self, start: u64, end: u64) -> ReadSlice
[src]
Return a new and independent ReadSlice
for the same file, for the
range of byte offsets start..end
. Panics if start is greater than
end. Note that end is not checked against the constructed length.
pub fn tell(&self) -> u64
[src]
Return the current instance position. This is a convenience shorthand
for seek(SeekFrom::Current(0))
, is infallable, and does not require
a mutable reference.
Trait Implementations
impl Debug for ReadPos
[src]
fn fmt(&self, __arg_0: &mut Formatter) -> Result
[src]
Formats the value using the given formatter. Read more
impl Clone for ReadPos
[src]
ⓘImportant traits for ReadPosfn clone(&self) -> ReadPos
[src]
Return a new, independent ReadPos
with the same length and file
reference as self, and with position 0 (ignores the current
position of self).
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl PosRead for ReadPos
[src]
fn pread(&self, buf: &mut [u8], offset: u64) -> Result<usize>
[src]
Read some bytes, starting at the specified offset, into the specified buffer and return the number of bytes read. The offset is from the start of the underlying file or file range. The position of the underlying file pointer (aka cursor) is not used. It is platform dependent whether the underlying file pointer is modified by this operation. Read more
impl Read for ReadPos
[src]
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
[src]
Pull some bytes from this source into the specified buffer, returning how many bytes were read. Read more
unsafe fn initializer(&self) -> Initializer
[src]
read_initializer
)Determines if this Read
er can work with buffers of uninitialized memory. Read more
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
1.0.0[src]
Read all bytes until EOF in this source, placing them into buf
. Read more
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
1.0.0[src]
Read all bytes until EOF in this source, appending them to buf
. Read more
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
1.6.0[src]
Read the exact number of bytes required to fill buf
. Read more
fn by_ref(&mut self) -> &mut Self
1.0.0[src]
Creates a "by reference" adaptor for this instance of Read
. Read more
fn bytes(self) -> Bytes<Self>
1.0.0[src]
Transforms this Read
instance to an [Iterator
] over its bytes. Read more
fn chars(self) -> Chars<Self>
[src]
🔬 This is a nightly-only experimental API. (io
)
the semantics of a partial read/write of where errors happen is currently unclear and may change
Transforms this Read
instance to an [Iterator
] over [char
]s. Read more
fn chain<R>(self, next: R) -> Chain<Self, R> where
R: Read,
1.0.0[src]
R: Read,
Creates an adaptor which will chain this stream with another. Read more
fn take(self, limit: u64) -> Take<Self>
1.0.0[src]
Creates an adaptor which will read at most limit
bytes from it. Read more