Skip to main content

ProviderMetadataProvider

Trait ProviderMetadataProvider 

Source
pub trait ProviderMetadataProvider<Ctx> {
    const PROVIDER_KEY: &'static str;
    const DISPLAY_NAME: &'static str;
    const DEFAULT_MODEL: &'static str;
    const API_BASE_URL: &'static str;
    const BASE_URL_ENV_VAR: Option<&'static str>;
}
Expand description

Provider trait for provider metadata.

Required Associated Constants§

Source

const PROVIDER_KEY: &'static str

Source

const DISPLAY_NAME: &'static str

Source

const DEFAULT_MODEL: &'static str

Source

const API_BASE_URL: &'static str

Source

const BASE_URL_ENV_VAR: Option<&'static str>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl ProviderMetadataProvider<AnthropicProviderConfig> for AnthropicProviderConfig

Source§

const PROVIDER_KEY: &'static str = "anthropic"

Source§

const DISPLAY_NAME: &'static str = "Anthropic"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::anthropic::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::ANTHROPIC_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<CopilotProviderConfig> for CopilotProviderConfig

Source§

const PROVIDER_KEY: &'static str = "copilot"

Source§

const DISPLAY_NAME: &'static str = "GitHub Copilot"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::copilot::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = ""

Source§

const BASE_URL_ENV_VAR: Option<&'static str> = None

Source§

impl ProviderMetadataProvider<DeepSeekProviderConfig> for DeepSeekProviderConfig

Source§

const PROVIDER_KEY: &'static str = "deepseek"

Source§

const DISPLAY_NAME: &'static str = "DeepSeek"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::deepseek::DEEPSEEK_V4_PRO

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::DEEPSEEK_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<EvolinkProviderConfig> for EvolinkProviderConfig

Source§

const PROVIDER_KEY: &'static str = "evolink"

Source§

const DISPLAY_NAME: &'static str = "Evolink"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::evolink::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::EVOLINK_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<GeminiProviderConfig> for GeminiProviderConfig

Source§

const PROVIDER_KEY: &'static str = "gemini"

Source§

const DISPLAY_NAME: &'static str = "Gemini"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::google::GEMINI_3_FLASH_PREVIEW

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::GEMINI_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<HuggingFaceProviderConfig> for HuggingFaceProviderConfig

Source§

const PROVIDER_KEY: &'static str = "huggingface"

Source§

const DISPLAY_NAME: &'static str = "HuggingFace"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::huggingface::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::HUGGINGFACE_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<LlamaCppProviderConfig> for LlamaCppProviderConfig

Source§

const PROVIDER_KEY: &'static str = "llamacpp"

Source§

const DISPLAY_NAME: &'static str = "llama.cpp"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::llamacpp::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::LLAMACPP_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<LmStudioProviderConfig> for LmStudioProviderConfig

Source§

const PROVIDER_KEY: &'static str = "lmstudio"

Source§

const DISPLAY_NAME: &'static str = "LM Studio"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::lmstudio::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::LMSTUDIO_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<MiMoProviderConfig> for MiMoProviderConfig

Source§

const PROVIDER_KEY: &'static str = "mimo"

Source§

const DISPLAY_NAME: &'static str = "Xiaomi MiMo"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::mimo::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::MIMO_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<MinimaxProviderConfig> for MinimaxProviderConfig

Source§

const PROVIDER_KEY: &'static str = "minimax"

Source§

const DISPLAY_NAME: &'static str = "Minimax"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::minimax::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::MINIMAX_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<MistralProviderConfig> for MistralProviderConfig

Source§

const PROVIDER_KEY: &'static str = "mistral"

Source§

const DISPLAY_NAME: &'static str = "Mistral"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::mistral::MISTRAL_LARGE_3

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::MISTRAL_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<MoonshotProviderConfig> for MoonshotProviderConfig

Source§

const PROVIDER_KEY: &'static str = "moonshot"

Source§

const DISPLAY_NAME: &'static str = "Moonshot"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::moonshot::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::MOONSHOT_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<OllamaProviderConfig> for OllamaProviderConfig

Source§

const PROVIDER_KEY: &'static str = "ollama"

Source§

const DISPLAY_NAME: &'static str = "Ollama"

Source§

const DEFAULT_MODEL: &'static str = "gpt-oss:20b"

Source§

const API_BASE_URL: &'static str = "http://localhost:11434"

Source§

const BASE_URL_ENV_VAR: Option<&'static str> = None

Source§

impl ProviderMetadataProvider<OpenAIProviderConfig> for OpenAIProviderConfig

Source§

const PROVIDER_KEY: &'static str = "openai"

Source§

const DISPLAY_NAME: &'static str = "OpenAI"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::openai::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::OPENAI_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<OpenCodeGoProviderConfig> for OpenCodeGoProviderConfig

Source§

const PROVIDER_KEY: &'static str = "opencode-go"

Source§

const DISPLAY_NAME: &'static str = "OpenCode Go"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::opencode_go::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::OPENCODE_GO_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<OpenCodeZenProviderConfig> for OpenCodeZenProviderConfig

Source§

const PROVIDER_KEY: &'static str = "opencode-zen"

Source§

const DISPLAY_NAME: &'static str = "OpenCode Zen"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::opencode_zen::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::OPENCODE_ZEN_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<OpenResponsesProviderConfig> for OpenResponsesProviderConfig

Source§

const PROVIDER_KEY: &'static str = "openresponses"

Source§

const DISPLAY_NAME: &'static str = "OpenResponses"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::openresponses::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::OPENRESPONSES_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<OpenRouterProviderConfig> for OpenRouterProviderConfig

Source§

const PROVIDER_KEY: &'static str = "openrouter"

Source§

const DISPLAY_NAME: &'static str = "OpenRouter"

Source§

const DEFAULT_MODEL: &'static str = "openrouter/auto"

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::OPENROUTER_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<PoolsideProviderConfig> for PoolsideProviderConfig

Source§

const PROVIDER_KEY: &'static str = "poolside"

Source§

const DISPLAY_NAME: &'static str = "Poolside"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::poolside::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::POOLSIDE_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<QwenProviderConfig> for QwenProviderConfig

Source§

const PROVIDER_KEY: &'static str = "qwen"

Source§

const DISPLAY_NAME: &'static str = "Qwen"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::qwen::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::QWEN_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<StepFunProviderConfig> for StepFunProviderConfig

Source§

const PROVIDER_KEY: &'static str = "stepfun"

Source§

const DISPLAY_NAME: &'static str = "StepFun"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::stepfun::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::STEPFUN_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<ZAIProviderConfig> for ZAIProviderConfig

Source§

const PROVIDER_KEY: &'static str = "zai"

Source§

const DISPLAY_NAME: &'static str = "Z.AI"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::zai::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::Z_AI_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>