Trait 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);

Required Methods§

Source

fn size(&self) -> Result<Option<u64>>

Get the size of this object, in bytes.

This function may return Ok(None) if the size is unknown, for example for pipes.

Implementations on Foreign Types§

Source§

impl Size for &[u8]

Source§

fn size(&self) -> Result<Option<u64>>

Source§

impl Size for &mut [u8]

Source§

fn size(&self) -> Result<Option<u64>>

Source§

impl Size for Arc<RandomAccessFile>

Source§

fn size(&self) -> Result<Option<u64>>

Source§

impl Size for Vec<u8>

Source§

fn size(&self) -> Result<Option<u64>>

Source§

impl Size for File

Source§

fn size(&self) -> Result<Option<u64>>

Source§

impl<S: Size + ?Sized> Size for &S

Source§

fn size(&self) -> Result<Option<u64>>

Source§

impl<S: Size + ?Sized> Size for &mut S

Source§

fn size(&self) -> Result<Option<u64>>

Source§

impl<S: Size + ?Sized> Size for Box<S>

Source§

fn size(&self) -> Result<Option<u64>>

Source§

impl<S: Size> Size for &RefCell<S>

Source§

fn size(&self) -> Result<Option<u64>>

Implementors§