Skip to main content

objectiveai_sdk/filesystem/config/
config.rs

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