Skip to main content

ProviderBuilder

Trait ProviderBuilder 

Source
pub trait ProviderBuilder:
    Sized
    + Default
    + Clone {
    type Extension<H: HttpClientExt>: Provider;
    type ApiKey: ApiKey;

    const BASE_URL: &'static str;

    // Required method
    fn build<H>(
        builder: &ClientBuilder<Self, Self::ApiKey, H>,
    ) -> Result<Self::Extension<H>, Error>
       where H: HttpClientExt;

    // Provided method
    fn finish<H>(
        &self,
        builder: ClientBuilder<Self, Self::ApiKey, H>,
    ) -> Result<ClientBuilder<Self, Self::ApiKey, H>, Error> { ... }
}
Expand description

An API provider extension builder, this abstracts over provider-specific builders which are able to configure and produce a given provider’s extension type

See Provider

Required Associated Constants§

Source

const BASE_URL: &'static str

Default base URL for the provider.

Required Associated Types§

Source

type Extension<H: HttpClientExt>: Provider

Provider extension type built for a concrete HTTP backend.

Source

type ApiKey: ApiKey

API key input type accepted by the provider’s client builder.

Required Methods§

Source

fn build<H>( builder: &ClientBuilder<Self, Self::ApiKey, H>, ) -> Result<Self::Extension<H>, Error>
where H: HttpClientExt,

Build the provider extension from the client builder configuration.

Provided Methods§

Source

fn finish<H>( &self, builder: ClientBuilder<Self, Self::ApiKey, H>, ) -> Result<ClientBuilder<Self, Self::ApiKey, H>, Error>

This method can be used to customize the fields of builder before it is used to create a client. For example, adding default headers

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§

Source§

impl ProviderBuilder for AnthropicBuilder

Source§

const BASE_URL: &'static str = "https://api.anthropic.com"

Source§

type Extension<H: HttpClientExt> = AnthropicExt

Source§

type ApiKey = AnthropicKey

Source§

impl ProviderBuilder for AzureExtBuilder

Source§

impl ProviderBuilder for ChatGPTBuilder

Source§

const BASE_URL: &'static str = CHATGPT_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = ChatGPTExt

Source§

type ApiKey = ChatGPTAuth

Source§

impl ProviderBuilder for CohereBuilder

Source§

const BASE_URL: &'static str = "https://api.cohere.ai"

Source§

type Extension<H: HttpClientExt> = CohereExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for CopilotBuilder

Source§

const BASE_URL: &'static str = GITHUB_COPILOT_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = CopilotExt

Source§

type ApiKey = CopilotAuth

Source§

impl ProviderBuilder for DeepSeekExtBuilder

Source§

const BASE_URL: &'static str = DEEPSEEK_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = DeepSeekExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for DoublewordExtBuilder

Source§

const BASE_URL: &'static str = DOUBLEWORD_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = DoublewordExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for GeminiBuilder

Source§

const BASE_URL: &'static str = GEMINI_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = GeminiExt

Source§

type ApiKey = GeminiApiKey

Source§

impl ProviderBuilder for GeminiInteractionsBuilder

Source§

impl ProviderBuilder for GroqBuilder

Source§

const BASE_URL: &'static str = GROQ_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = GroqExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for HuggingFaceBuilder

Source§

const BASE_URL: &'static str = HUGGINGFACE_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = HuggingFaceExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for HyperbolicBuilder

Source§

const BASE_URL: &'static str = HYPERBOLIC_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = HyperbolicExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for LlamafileBuilder

Source§

const BASE_URL: &'static str = LLAMAFILE_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = LlamafileExt

Source§

type ApiKey = Nothing

Source§

impl ProviderBuilder for MiniMaxAnthropicBuilder

Source§

const BASE_URL: &'static str = GLOBAL_ANTHROPIC_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = MiniMaxAnthropicExt

Source§

type ApiKey = AnthropicKey

Source§

impl ProviderBuilder for MiniMaxBuilder

Source§

const BASE_URL: &'static str = GLOBAL_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = MiniMaxExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for MiraBuilder

Source§

const BASE_URL: &'static str = MIRA_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = MiraExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for MistralBuilder

Source§

const BASE_URL: &'static str = MISTRAL_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = MistralExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for MoonshotAnthropicBuilder

Source§

impl ProviderBuilder for MoonshotBuilder

Source§

const BASE_URL: &'static str = GLOBAL_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = MoonshotExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for OllamaBuilder

Source§

const BASE_URL: &'static str = OLLAMA_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = OllamaExt

Source§

type ApiKey = OllamaApiKey

Source§

impl ProviderBuilder for OpenAICompletionsExtBuilder

Source§

impl ProviderBuilder for OpenAIResponsesExtBuilder

Source§

impl ProviderBuilder for OpenRouterExtBuilder

Source§

const BASE_URL: &'static str = OPENROUTER_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = OpenRouterExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for PerplexityBuilder

Source§

const BASE_URL: &'static str = PERPLEXITY_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = PerplexityExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for TogetherExtBuilder

Source§

const BASE_URL: &'static str = TOGETHER_AI_BASE_URL

Source§

type Extension<H: HttpClientExt> = TogetherExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for VoyageBuilder

Source§

const BASE_URL: &'static str = VOYAGEAI_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = VoyageExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for XAiExtBuilder

Source§

const BASE_URL: &'static str = XAI_BASE_URL

Source§

type Extension<H: HttpClientExt> = XAiExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for XiaomiMimoAnthropicBuilder

Source§

impl ProviderBuilder for XiaomiMimoBuilder

Source§

impl ProviderBuilder for ZAiAnthropicBuilder

Source§

const BASE_URL: &'static str = ANTHROPIC_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = ZAiAnthropicExt

Source§

type ApiKey = AnthropicKey

Source§

impl ProviderBuilder for ZAiBuilder

Source§

const BASE_URL: &'static str = GENERAL_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = ZAiExt

Source§

type ApiKey = BearerAuth