commitlog 0.2.0

Sequential, disk-backed commit log library.
Documentation
use rand;
use std::{
    fs,
    path::{Path, PathBuf},
};

pub struct TestDir {
    path: PathBuf,
}

impl TestDir {
    pub fn new() -> TestDir {
        let mut path_buf = PathBuf::new();
        path_buf.push("target");
        path_buf.push("test-data");
        path_buf.push(format!("test-{:020}", rand::random::<u64>()));
        fs::create_dir_all(&path_buf).unwrap();
        TestDir { path: path_buf }
    }
}

impl Drop for TestDir {
    fn drop(&mut self) {
        fs::remove_dir_all(&self).expect("Unable to delete test data directory");
    }
}

impl AsRef<Path> for TestDir {
    fn as_ref(&self) -> &Path {
        self.path.as_ref()
    }
}