INNER CODE UNIT · Rust
new
gosub-io/gosub-engine · crates/gosub_config/src/lib.rs:297
fn new(schema: impl IntoIterator<Item = SettingInfo>) -> Self {
let mut store = ConfigStore {
settings: parking_lot::Mutex::new(HashMap::new()),
settings_info: HashMap::new(),
setting_keys: Vec::new(),
storage: Box::new(MemoryStorageAdapter::new()),
subscriptions: Vec::new(),
next_subscription_id: 0,
};
for info in schema {
let key = info.key.clone();
store.settings.lock().insert(key.clone(), info.default.clone());
store.setting_keys.push(key.clone());
store.settings_info.insert(key, info);
}
store