objectiveai-sdk 2.0.5

ObjectiveAI SDK, definitions, and utilities
Documentation
use serde::{Serialize, Deserialize};

#[derive(Debug, Clone, Default, Serialize, Deserialize, schemars::JsonSchema)]
#[schemars(rename = "filesystem.config.Config")]
pub struct Config {
    #[serde(skip_serializing_if = "super::ApiConfig::is_none")]
    #[schemars(extend("omitempty" = true))]
    pub api: Option<super::ApiConfig>,
    #[serde(skip_serializing_if = "super::AgentsConfig::is_none")]
    #[schemars(extend("omitempty" = true))]
    pub agents: Option<super::AgentsConfig>,
    #[serde(skip_serializing_if = "super::SwarmsConfig::is_none")]
    #[schemars(extend("omitempty" = true))]
    pub swarms: Option<super::SwarmsConfig>,
    #[serde(skip_serializing_if = "super::FunctionsConfig::is_none")]
    #[schemars(extend("omitempty" = true))]
    pub functions: Option<super::FunctionsConfig>,
    #[serde(skip_serializing_if = "super::ViewerConfig::is_none")]
    #[schemars(extend("omitempty" = true))]
    pub viewer: Option<super::ViewerConfig>,
}

impl Config {
    pub fn api(&mut self) -> &mut super::ApiConfig {
        self.api.get_or_insert_with(super::ApiConfig::default)
    }

    pub fn agents(&mut self) -> &mut super::AgentsConfig {
        self.agents.get_or_insert_with(super::AgentsConfig::default)
    }

    pub fn swarms(&mut self) -> &mut super::SwarmsConfig {
        self.swarms.get_or_insert_with(super::SwarmsConfig::default)
    }

    pub fn functions(&mut self) -> &mut super::FunctionsConfig {
        self.functions.get_or_insert_with(super::FunctionsConfig::default)
    }

    pub fn viewer(&mut self) -> &mut super::ViewerConfig {
        self.viewer.get_or_insert_with(super::ViewerConfig::default)
    }

    pub fn jq(&self, filter: &str) -> Result<Vec<serde_json::Value>, super::super::Error> {
        super::super::run_jq(self, filter)
    }
}