pub struct OpenRouterProvider { /* private fields */ }Implementations§
Trait Implementations§
Source§impl ModelProvider for OpenRouterProvider
impl ModelProvider for OpenRouterProvider
Source§fn warmup<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn warmup<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Warm up the HTTP connection pool (TLS handshake, DNS, HTTP/2 setup).
Default implementation is a no-op; providers with HTTP clients should override.
Source§fn chat<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request: ChatRequest<'life1>,
model: &'life2 str,
temperature: f64,
) -> Pin<Box<dyn Future<Output = Result<ChatResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn chat<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request: ChatRequest<'life1>,
model: &'life2 str,
temperature: f64,
) -> Pin<Box<dyn Future<Output = Result<ChatResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Structured chat API — the single required method. Read more
Source§fn context_window(&self, model: &str) -> Option<usize>
fn context_window(&self, model: &str) -> Option<usize>
Context window size in tokens for the given model. Read more
Source§fn supports_native_tools(&self) -> bool
fn supports_native_tools(&self) -> bool
Whether provider supports native tool calls over API.
Source§fn supports_developer_role(&self, model: &str) -> bool
fn supports_developer_role(&self, model: &str) -> bool
Whether the given model supports the
developer message role (OpenAI-spec).
When true, app-owned instructions are sent as a developer message.
When false, they are folded into the provider’s system-equivalent role.Source§fn chat_stream<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request: ChatRequest<'life1>,
model: &'life2 str,
temperature: f64,
events: UnboundedSender<ProviderStreamEvent>,
) -> Pin<Box<dyn Future<Output = Result<ChatResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn chat_stream<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request: ChatRequest<'life1>,
model: &'life2 str,
temperature: f64,
events: UnboundedSender<ProviderStreamEvent>,
) -> Pin<Box<dyn Future<Output = Result<ChatResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Optional streaming chat API. Read more
Source§fn native_capabilities(&self) -> Option<ProviderNativeCapabilities>
fn native_capabilities(&self) -> Option<ProviderNativeCapabilities>
Provider-native capabilities outside the chat/tool turn loop. Read more
Source§fn submit_media<'life0, 'async_trait>(
&'life0 self,
request: NativeMediaRequest,
) -> Pin<Box<dyn Future<Output = Result<NativeMediaResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn submit_media<'life0, 'async_trait>(
&'life0 self,
request: NativeMediaRequest,
) -> Pin<Box<dyn Future<Output = Result<NativeMediaResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Submit a provider-native media operation.
Source§fn poll_media_job<'life0, 'life1, 'async_trait>(
&'life0 self,
job: &'life1 NativeMediaJob,
) -> Pin<Box<dyn Future<Output = Result<NativeMediaResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn poll_media_job<'life0, 'life1, 'async_trait>(
&'life0 self,
job: &'life1 NativeMediaJob,
) -> Pin<Box<dyn Future<Output = Result<NativeMediaResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Poll an async provider-native media job.
Auto Trait Implementations§
impl !Freeze for OpenRouterProvider
impl !RefUnwindSafe for OpenRouterProvider
impl !UnwindSafe for OpenRouterProvider
impl Send for OpenRouterProvider
impl Sync for OpenRouterProvider
impl Unpin for OpenRouterProvider
impl UnsafeUnpin for OpenRouterProvider
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