Skip to main content

rskit_cache/adapters/memory/
registration.rs

1use std::sync::Arc;
2
3use rskit_errors::AppResult;
4
5use crate::config::CacheConfig;
6use crate::registry::{CacheRegistry, CacheStore, CacheStoreFactory};
7
8use super::MemoryCache;
9
10struct MemoryFactory;
11
12#[async_trait::async_trait]
13impl CacheStoreFactory for MemoryFactory {
14    async fn create(&self, config: &CacheConfig) -> AppResult<Arc<dyn CacheStore>> {
15        Ok(Arc::new(MemoryCache::new(
16            config.key_prefix.clone(),
17            config.memory.max_entries,
18        )))
19    }
20}
21
22/// Explicitly register the in-memory adapter.
23pub fn register_memory(registry: &mut CacheRegistry) -> AppResult<()> {
24    registry.register("memory", Arc::new(MemoryFactory))
25}