soph_storage/support/
storage.rs1use crate::{config, support::drivers, traits::StoreDriver, Storage, StorageResult};
2use soph_config::support::config;
3
4impl Storage {
5 pub fn new() -> StorageResult<Self> {
6 let config = config().parse::<config::Storage>()?;
7
8 let driver = match config.driver {
9 config::Driver::Null => drivers::null::new(),
10 config::Driver::Local => drivers::local::new(),
11 config::Driver::Memory => drivers::mem::new(),
12 };
13
14 Ok(Self { driver })
15 }
16}
17
18impl std::ops::Deref for Storage {
19 type Target = Box<dyn StoreDriver>;
20
21 fn deref(&self) -> &Self::Target {
22 &self.driver
23 }
24}