Trait positioned_io::Size
source · pub trait Size {
// Required method
fn size(&self) -> Result<Option<u64>>;
}
Expand description
Trait to get the size in bytes of an I/O object.
Implementing this for a types with ReadAt
or WriteAt
makes it easier
for users to predict whether they will read past end-of-file. However, it
may not be possible to implement for certain readers or writers that have
unknown size.
Examples
use std::fs::File;
use positioned_io::Size;
let file = File::open("tests/pi.txt")?;
let size = file.size()?;
assert_eq!(size, Some(1000002));
// some special files do not have a known size
let file = File::open("/dev/stdin")?;
let size = file.size()?;
assert_eq!(size, None);