mindcontrol_types 0.21.0

Mind Control types
Documentation
use litty::literal;
use serde::{Deserialize, Serialize};
use std::collections::BTreeMap;

/// Anthropic model identifier.
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum AnthropicModelV1 {
    Claude35Sonnet(AnthropicModelV1Claude35Sonnet),
    Claude3Opus(AnthropicModelV1Claude3Opus),
    Claude3Sonnet(AnthropicModelV1Claude3Sonnet),
    Claude3Haiku(AnthropicModelV1Claude3Haiku),
    String(String),
}

#[literal("claude-3-5-sonnet")]
pub struct AnthropicModelV1Claude35Sonnet;

#[literal("claude-3-opus")]
pub struct AnthropicModelV1Claude3Opus;

#[literal("claude-3-sonnet")]
pub struct AnthropicModelV1Claude3Sonnet;

#[literal("claude-3-haiku")]
pub struct AnthropicModelV1Claude3Haiku;

/// Anthropic model settings.
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct AnthropicSettingsV1 {
    /// Settings type.
    pub r#type: AnthropicSettingsV1TypeAnthropic,
    /// Model identifier.
    pub model: Option<AnthropicModelV1>,
}

#[literal("anthropic")]
pub struct AnthropicSettingsV1TypeAnthropic;

/// Anthropic providers.
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum AnthropicProvider {
    Aws(AnthropicProviderAws),
    Anthropic(AnthropicProviderAnthropic),
    Gcp(AnthropicProviderGcp),
}

#[literal("aws")]
pub struct AnthropicProviderAws;

#[literal("anthropic")]
pub struct AnthropicProviderAnthropic;

#[literal("gcp")]
pub struct AnthropicProviderGcp;

/// Anthropic provider settings.
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct AnthropicProviderSettingsV1 {
    pub default: Option<AnthropicProvider>,
    pub models: Option<BTreeMap<String, AnthropicProvider>>,
}