pub struct ProviderConfig {
pub name: String,
pub base_url: String,
pub api_key_envs: Vec<String>,
pub enabled: bool,
pub provider_type: ProviderType,
pub extra_headers: HashMap<String, String>,
pub rate_limit: Option<RateLimitConfig>,
pub models: Vec<String>,
pub model_metadata: Option<HashMap<String, ModelMetadata>>,
}Fields§
§name: String§base_url: String§api_key_envs: Vec<String>One or more env-var names whose values are API tokens. Multiple tokens enable a round-robin pool: [“KEY_1”, “KEY_2”, …]. Leave empty for unauthenticated providers (e.g. local Ollama).
enabled: bool§provider_type: ProviderTypeWire protocol this provider uses.
extra_headers: HashMap<String, String>Optional extra HTTP headers sent on every request (e.g. OpenRouter’s
HTTP-Referer and X-Title).
rate_limit: Option<RateLimitConfig>§models: Vec<String>Known model IDs this provider supports.
For API providers the gateway can also fetch from upstream /models.
For CLI providers (cursor, claude-code, codex-cli) this is the only
way to declare available models since CLIs have no listing API.
model_metadata: Option<HashMap<String, ModelMetadata>>Optional rich metadata per model (keyed by model ID).
When present, /v1/models responses include context_window, max_tokens, etc.
Trait Implementations§
Source§impl Clone for ProviderConfig
impl Clone for ProviderConfig
Source§fn clone(&self) -> ProviderConfig
fn clone(&self) -> ProviderConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ProviderConfig
impl Debug for ProviderConfig
Source§impl<'de> Deserialize<'de> for ProviderConfig
impl<'de> Deserialize<'de> for ProviderConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ProviderConfig
impl RefUnwindSafe for ProviderConfig
impl Send for ProviderConfig
impl Sync for ProviderConfig
impl Unpin for ProviderConfig
impl UnsafeUnpin for ProviderConfig
impl UnwindSafe for ProviderConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more