#[cfg(test)]
extern crate tempdir;
use tempdir::TempDir;
use std::io::{Read, Write, Result};
use std::path::PathBuf;
use hash::ContentHasher;
use backend::Backend;
use store::Store;
use content::Content;
use default::BlakeWrap;
impl<H> Backend<H> for TempDir where H: ContentHasher {
fn store(
&mut self,
source: &Fn(&mut Write, &mut Backend<H>) -> Result<H::Digest>,
) -> Result<H::Digest> {
PathBuf::from(self.path()).store(source)
}
fn request(
&self,
hash: &H::Digest,
read: &Fn(&mut Read) -> Result<()>,
) -> Result<()> {
let pb = PathBuf::from(self.path());
(&pb as &Backend<H>).request(hash, read)
}
}
pub fn store<T: Content<BlakeWrap>>() -> Store<T, BlakeWrap> {
Store::new()
}