mindcontrol_types 0.21.0

Mind Control types
Documentation
use super::anthropic::{AnthropicSettingsV1, AnthropicProvider};
use super::openai::{OpenAISettingsV1, OpenAIProvider};
use super::perplexity::{PerplexitySettings, PerplexityProvider};
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum LlmProvider {
    AnthropicProvider(AnthropicProvider),
    OpenAIProvider(OpenAIProvider),
    PerplexityProvider(PerplexityProvider),
}

#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum LlmSettingsV1 {
    SettingsNope(SettingsNope),
    AnthropicSettingsV1(AnthropicSettingsV1),
    OpenAISettingsV1(OpenAISettingsV1),
    PerplexitySettings(PerplexitySettings),
}

/// Fallback for when no settings are provided. It is needed to fallback for
/// older payloads with empty settings object.
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct SettingsNope {
    pub r#type: Option<()>,
    pub model: Option<()>,
}