spin_factor_key_value/
runtime_config.rs1pub mod spin;
2
3use std::{collections::HashMap, sync::Arc};
4
5use crate::StoreManager;
6
7#[derive(Default, Clone)]
9pub struct RuntimeConfig {
10 store_managers: HashMap<String, Arc<dyn StoreManager>>,
12}
13
14impl RuntimeConfig {
15 pub fn add_store_manager(&mut self, label: String, store_manager: Arc<dyn StoreManager>) {
19 self.store_managers.insert(label, store_manager);
20 }
21
22 pub fn has_store_manager(&self, label: &str) -> bool {
24 self.store_managers.contains_key(label)
25 }
26
27 pub fn get_store_manager(&self, label: &str) -> Option<Arc<dyn StoreManager>> {
29 self.store_managers.get(label).cloned()
30 }
31}
32
33impl IntoIterator for RuntimeConfig {
34 type Item = (String, Arc<dyn StoreManager>);
35 type IntoIter = std::collections::hash_map::IntoIter<String, Arc<dyn StoreManager>>;
36
37 fn into_iter(self) -> Self::IntoIter {
38 self.store_managers.into_iter()
39 }
40}