mod file_cache;
pub use file_cache::FileCacheController;
use maybe_sync::{MaybeSend, MaybeSync};
use crate::error::GalileoError;
pub trait PersistentCacheController<Key: ?Sized, Data>: MaybeSend + MaybeSync {
fn get(&self, key: &Key) -> Option<Data>;
fn insert(&self, key: &Key, data: &Data) -> Result<(), GalileoError>;
}
pub trait UrlSource<Key: ?Sized>: (Fn(&Key) -> String) + MaybeSend + MaybeSync {}
impl<Key: ?Sized, T: Fn(&Key) -> String> UrlSource<Key> for T where T: MaybeSend + MaybeSync {}
pub(crate) mod dummy {
use bytes::Bytes;
use crate::error::GalileoError;
use crate::layer::data_provider::PersistentCacheController;
pub struct DummyCacheController {}
impl<Key: ?Sized> PersistentCacheController<Key, Bytes> for DummyCacheController {
fn get(&self, _key: &Key) -> Option<Bytes> {
None
}
fn insert(&self, _key: &Key, _data: &Bytes) -> Result<(), GalileoError> {
Ok(())
}
}
}
pub use dummy::DummyCacheController;