Skip to main content

aa_storage_memory/
registration.rs

1//! Driver registration: announce the memory backends to an [`aa_storage::Registry`].
2
3use aa_storage::Registry;
4
5use crate::factory::{
6    MemoryAuditSinkFactory, MemoryCredentialStoreFactory, MemoryLifecycleStoreFactory, MemoryPolicyStoreFactory,
7    MemoryRateLimitCounterFactory, MemorySessionStoreFactory,
8};
9
10/// The name the memory driver registers all six storage backends under.
11pub const DRIVER_NAME: &str = "memory";
12
13/// Register the in-memory factories for all six storage kinds into `reg` under
14/// [`DRIVER_NAME`].
15///
16/// Call this from boot code *after*
17/// [`aa_storage::builtin::register_builtin_drivers`] to replace the `"memory"`
18/// placeholder with the real backends — `register_*` is last-write-wins, so the
19/// real factory overrides the not-yet-implemented stub.
20pub fn register(reg: &mut Registry) {
21    reg.register_policy_store(DRIVER_NAME, Box::new(MemoryPolicyStoreFactory));
22    reg.register_audit_sink(DRIVER_NAME, Box::new(MemoryAuditSinkFactory));
23    reg.register_session_store(DRIVER_NAME, Box::new(MemorySessionStoreFactory));
24    reg.register_credential_store(DRIVER_NAME, Box::new(MemoryCredentialStoreFactory));
25    reg.register_rate_limit_counter(DRIVER_NAME, Box::new(MemoryRateLimitCounterFactory));
26    reg.register_lifecycle_store(DRIVER_NAME, Box::new(MemoryLifecycleStoreFactory));
27}