Skip to main content

threatflux_cache/backends/
mod.rs

1//! Storage backend implementations
2
3use crate::EntryMetadata;
4use serde::{Serialize, de::DeserializeOwned};
5use std::hash::Hash;
6
7/// Bounds required for backend keys
8pub trait BackendKey: Hash + Eq + Clone + Send + Sync {}
9impl<T> BackendKey for T where T: Hash + Eq + Clone + Send + Sync {}
10
11/// Bounds required for backend values
12pub trait BackendValue: Clone + Send + Sync {}
13impl<T> BackendValue for T where T: Clone + Send + Sync {}
14
15/// Bounds required for backend metadata
16pub trait BackendMeta: Clone + Send + Sync {}
17impl<T> BackendMeta for T where T: Clone + Send + Sync {}
18
19/// Combined bounds for storage keys
20pub trait StorageKey: BackendKey + Serialize + DeserializeOwned + 'static {}
21impl<T> StorageKey for T where T: BackendKey + Serialize + DeserializeOwned + 'static {}
22
23/// Combined bounds for storage values
24pub trait StorageValue: BackendValue + Serialize + DeserializeOwned + 'static {}
25impl<T> StorageValue for T where T: BackendValue + Serialize + DeserializeOwned + 'static {}
26
27/// Combined bounds for storage metadata
28pub trait StorageMeta: BackendMeta + Serialize + DeserializeOwned + EntryMetadata {}
29impl<T> StorageMeta for T where T: BackendMeta + Serialize + DeserializeOwned + EntryMetadata {}
30
31pub mod memory;
32
33#[cfg(feature = "filesystem-backend")]
34pub mod filesystem;