pub trait Provider: Send + Sync {
// Required methods
fn model(&self) -> &str;
fn complete<'life0, 'async_trait>(
&'life0 self,
request: ProviderRequest,
deltas: Arc<dyn TextDeltaSink>,
cancellation: CancellationToken,
) -> Pin<Box<dyn Future<Output = Result<AssistantResponse, ProviderError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}Expand description
A model backend. complete sends one request,
streams text deltas to deltas, and returns the full answer with any tool
calls. It must stop promptly when cancellation fires.
Required Methods§
fn complete<'life0, 'async_trait>(
&'life0 self,
request: ProviderRequest,
deltas: Arc<dyn TextDeltaSink>,
cancellation: CancellationToken,
) -> Pin<Box<dyn Future<Output = Result<AssistantResponse, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".