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}