objectiveai_cli/filesystem/config/
config.rs1use serde::{Deserialize, Serialize};
2
3#[derive(
4 Debug, Clone, Default, Serialize, Deserialize, schemars::JsonSchema,
5)]
6#[schemars(rename = "filesystem.config.Config")]
7pub struct Config {
8 #[serde(skip_serializing_if = "super::ApiConfig::is_none")]
9 #[schemars(extend("omitempty" = true))]
10 pub api: Option<super::ApiConfig>,
11 #[serde(skip_serializing_if = "super::DbConfig::is_none")]
12 #[schemars(extend("omitempty" = true))]
13 pub db: Option<super::DbConfig>,
14 #[serde(skip_serializing_if = "super::ViewerConfig::is_none")]
15 #[schemars(extend("omitempty" = true))]
16 pub viewer: Option<super::ViewerConfig>,
17 #[serde(skip_serializing_if = "super::McpConfig::is_none")]
18 #[schemars(extend("omitempty" = true))]
19 pub mcp: Option<super::McpConfig>,
20}
21
22impl Config {
23 pub fn api(&mut self) -> &mut super::ApiConfig {
24 self.api.get_or_insert_with(super::ApiConfig::default)
25 }
26
27 pub fn db(&mut self) -> &mut super::DbConfig {
28 self.db.get_or_insert_with(super::DbConfig::default)
29 }
30
31 pub fn viewer(&mut self) -> &mut super::ViewerConfig {
32 self.viewer.get_or_insert_with(super::ViewerConfig::default)
33 }
34
35 pub fn mcp(&mut self) -> &mut super::McpConfig {
36 self.mcp.get_or_insert_with(super::McpConfig::default)
37 }
38
39 pub fn jq(
40 &self,
41 filter: &str,
42 ) -> Result<Vec<serde_json::Value>, super::super::Error> {
43 super::super::run_jq(self, filter)
44 }
45}