use super::bucketed::BucketedStore;
use super::fs_backend::FsBackend;
use super::pad_store::PadStore;
use std::path::PathBuf;
pub type FileStore = BucketedStore<FsBackend>;
impl FileStore {
pub fn new_fs(project_root: Option<PathBuf>, global_root: PathBuf) -> Self {
BucketedStore::new(
FsBackend::new(
project_root.as_ref().map(|r| r.join("active")),
global_root.join("active"),
),
FsBackend::new(
project_root.as_ref().map(|r| r.join("archived")),
global_root.join("archived"),
),
FsBackend::new(
project_root.as_ref().map(|r| r.join("deleted")),
global_root.join("deleted"),
),
FsBackend::new(project_root, global_root),
)
}
pub fn with_file_ext(mut self, ext: &str) -> Self {
self.active = PadStore::with_backend(self.active.backend.with_file_ext(ext));
self.archived = PadStore::with_backend(self.archived.backend.with_file_ext(ext));
self.deleted = PadStore::with_backend(self.deleted.backend.with_file_ext(ext));
self
}
pub fn file_ext(&self) -> &str {
self.active.backend.file_ext()
}
}