1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
//! Store trait for cache interchangeability.

mod memory_store;
mod file_store;

pub use memory_store::*;
pub use file_store::*;

use std::fs::File;

use crate::arc::ArchiveRef;

/// The internal storage for a cache with a way to read internal data.
pub trait Store: Sized {
    fn new(main_file: File) -> crate::Result<Self>;
    fn read(&self, archive: &ArchiveRef) -> crate::Result<Vec<u8>>;
}