soph_storage/support/
storage.rs

1use 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}