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::McpConfig::is_none")]
15 #[schemars(extend("omitempty" = true))]
16 pub mcp: Option<super::McpConfig>,
17}
18
19impl Config {
20 pub fn api(&mut self) -> &mut super::ApiConfig {
21 self.api.get_or_insert_with(super::ApiConfig::default)
22 }
23
24 pub fn db(&mut self) -> &mut super::DbConfig {
25 self.db.get_or_insert_with(super::DbConfig::default)
26 }
27
28 pub fn mcp(&mut self) -> &mut super::McpConfig {
29 self.mcp.get_or_insert_with(super::McpConfig::default)
30 }
31
32 pub fn jq(
33 &self,
34 filter: &str,
35 ) -> Result<Vec<serde_json::Value>, super::super::Error> {
36 super::super::run_jq(self, filter)
37 }
38}