pub struct MetaProvider { /* private fields */ }Implementations§
Trait Implementations§
Source§impl ModelProvider for MetaProvider
impl ModelProvider for MetaProvider
Source§fn capabilities(&self) -> &Capabilities
fn capabilities(&self) -> &Capabilities
Capabilities the provider advertises. The reducer reads this
when building the outgoing
ChatRequest (e.g. whether to
attach reasoning controls).Source§fn chat<'life0, 'async_trait>(
&'life0 self,
request: ChatRequest,
ctx: StreamContext,
) -> Pin<Box<dyn Future<Output = Result<FinalResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn chat<'life0, 'async_trait>(
&'life0 self,
request: ChatRequest,
ctx: StreamContext,
) -> Pin<Box<dyn Future<Output = Result<FinalResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Stream a chat turn. Typed events flow through
ctx.sink; the returned FinalResponse carries token usage
and the Anthropic thinking-signature (opaque blob required to
continue extended thinking across turns). Read moreSource§fn resolve_context_window<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 ChatRequest,
) -> Pin<Box<dyn Future<Output = ContextSizing> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn resolve_context_window<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 ChatRequest,
) -> Pin<Box<dyn Future<Output = ContextSizing> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Resolve the effective context window for a turn (what the model will
actually enforce). The default returns the static advertised window;
Ollama overrides this to probe the model’s real window and auto-fit
num_ctx to host memory, honoring the request’s per-model
ollama_num_ctx override. None means “let the backend decide”. Read moreSource§fn verify_placement<'life0, 'async_trait>(
&'life0 self,
current_num_ctx: Option<usize>,
) -> Pin<Box<dyn Future<Output = Option<ModelPlacement>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn verify_placement<'life0, 'async_trait>(
&'life0 self,
current_num_ctx: Option<usize>,
) -> Pin<Box<dyn Future<Output = Option<ModelPlacement>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Best-effort: where the loaded model currently sits in memory. The default
returns
None (unknown / not applicable); Ollama overrides it to probe
/api/ps. Awaited only on the effect runtime, after a turn (when the
model is resident), so it never blocks the UI.Source§fn supports_vision<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Option<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn supports_vision<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Option<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Best-effort: whether the active model can actually see images.
None
means “unknown / not applicable” — the default for providers that don’t
probe, and for cloud providers whose vision support is already known
good; Some(false) is what drives the no-vision-model warning. Awaited
only on the effect runtime, so a probe never blocks the UI.Auto Trait Implementations§
impl !RefUnwindSafe for MetaProvider
impl !UnwindSafe for MetaProvider
impl Freeze for MetaProvider
impl Send for MetaProvider
impl Sync for MetaProvider
impl Unpin for MetaProvider
impl UnsafeUnpin for MetaProvider
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more