system-interface 0.27.2

Extensions to the Rust standard library
Documentation
#[macro_use]
mod sys_common;

use std::fs::File;
use std::io::Read;
use system_interface::io::ReadReady;

#[test]
fn file_is_read_write() {
    let mut f = File::open("Cargo.toml").unwrap();

    let len = f.metadata().unwrap().len();
    assert_eq!(f.num_ready_bytes().unwrap(), len);

    let mut buf = [0u8; 6];
    f.read_exact(&mut buf).unwrap();
    assert_eq!(f.num_ready_bytes().unwrap(), len - (buf.len() as u64));

    #[cfg(target_os = "linux")]
    {
        let f = File::open("/dev/urandom").unwrap();
        let _ = f.num_ready_bytes().unwrap();

        let f = File::open("/dev/null").unwrap();
        let _ = f.num_ready_bytes().unwrap();
    }
}