file_rw 0.6.6

A library for high-performance, memory-mapped file I/O utilities.
Documentation
use file_rw::file::{open_as_read, open_as_write};
use std::io::Write;
use tempfile::tempdir;

macro_rules! file_test {
    ($file_name:expr, $init_text:expr, |$tempdir:ident, $tempdir_path:ident, $test_file_path:ident, $file:ident| $block:block) => {{
        let $tempdir = tempdir().unwrap();
        let $tempdir_path = $tempdir.path();
        let $test_file_path = $tempdir_path.join($file_name);
        let mut $file = open_as_write(&$test_file_path).unwrap();
        $file.write_all($init_text.as_bytes()).unwrap();
        assert!($test_file_path.exists());
        $block
    }};
}
#[cfg(test)]
#[test]
fn test_open_as_write() {
    file_test!(
        "test_open_as_write",
        "test",
        |tempdir, tempdir_path, test_file_path, file| {
            assert!(file.metadata().unwrap().len() > 0);
        }
    );
}

#[test]
fn test_open_as_read() {
    file_test!(
        "test_open_as_read",
        "test",
        |tempdir, tempdir_path, test_file_path, file| {
            let file = open_as_read(&test_file_path).unwrap();
            assert!(file.metadata().unwrap().len() > 0);
        }
    );
}