Skip to main content

sova_core/
devtools_config.rs

1//! Shared runtime config fragments for DevTools (mount paths, plugin metadata).
2
3use serde_json::{Map, Value};
4use std::sync::{Arc, Mutex};
5
6/// Plugins push JSON blobs here; DevTools merges them into `GET /_devtools/config`.
7#[derive(Clone, Default)]
8pub struct DevToolsConfigRegistry(Arc<Mutex<Map<String, Value>>>);
9
10impl DevToolsConfigRegistry {
11    pub fn set(&self, key: impl Into<String>, value: Value) {
12        self.0.lock().unwrap().insert(key.into(), value);
13    }
14
15    pub fn snapshot(&self) -> Map<String, Value> {
16        self.0.lock().unwrap().clone()
17    }
18}