aa_storage_memory/
factory.rs1use std::sync::Arc;
9
10use aa_storage::factory::{
11 AuditSinkFactory, CredentialStoreFactory, LifecycleStoreFactory, PolicyStoreFactory, RateLimitCounterFactory,
12 SessionStoreFactory,
13};
14use aa_storage::{AuditSink, CredentialStore, LifecycleStore, PolicyStore, RateLimitCounter, Result, SessionStore};
15
16use crate::{
17 MemoryAuditSink, MemoryCredentialStore, MemoryLifecycleStore, MemoryPolicyStore, MemoryRateLimitCounter,
18 MemorySessionStore,
19};
20
21#[derive(Debug, Default, Clone, Copy)]
23pub struct MemoryPolicyStoreFactory;
24
25impl PolicyStoreFactory for MemoryPolicyStoreFactory {
26 fn build(&self, _config: &toml::Value) -> Result<Arc<dyn PolicyStore>> {
27 Ok(Arc::new(MemoryPolicyStore::new()))
28 }
29}
30
31#[derive(Debug, Default, Clone, Copy)]
33pub struct MemoryAuditSinkFactory;
34
35impl AuditSinkFactory for MemoryAuditSinkFactory {
36 fn build(&self, _config: &toml::Value) -> Result<Arc<dyn AuditSink>> {
37 Ok(Arc::new(MemoryAuditSink::new()))
38 }
39}
40
41#[derive(Debug, Default, Clone, Copy)]
43pub struct MemorySessionStoreFactory;
44
45impl SessionStoreFactory for MemorySessionStoreFactory {
46 fn build(&self, _config: &toml::Value) -> Result<Arc<dyn SessionStore>> {
47 Ok(Arc::new(MemorySessionStore::new()))
48 }
49}
50
51#[derive(Debug, Default, Clone, Copy)]
53pub struct MemoryCredentialStoreFactory;
54
55impl CredentialStoreFactory for MemoryCredentialStoreFactory {
56 fn build(&self, _config: &toml::Value) -> Result<Arc<dyn CredentialStore>> {
57 Ok(Arc::new(MemoryCredentialStore::new()))
58 }
59}
60
61#[derive(Debug, Default, Clone, Copy)]
63pub struct MemoryRateLimitCounterFactory;
64
65impl RateLimitCounterFactory for MemoryRateLimitCounterFactory {
66 fn build(&self, _config: &toml::Value) -> Result<Arc<dyn RateLimitCounter>> {
67 Ok(Arc::new(MemoryRateLimitCounter::new()))
68 }
69}
70
71#[derive(Debug, Default, Clone, Copy)]
73pub struct MemoryLifecycleStoreFactory;
74
75impl LifecycleStoreFactory for MemoryLifecycleStoreFactory {
76 fn build(&self, _config: &toml::Value) -> Result<Arc<dyn LifecycleStore>> {
77 Ok(Arc::new(MemoryLifecycleStore::new()))
78 }
79}