pub enum UseCase {
Assistant,
Coding,
Summarize,
Vision,
Transcription,
Search,
}Expand description
What the user wants to do, in their terms — not a model ID. Closed enum:
adding a use case is a deliberate FFI-visible change, never a silent
string fallback. Each variant maps to a UseCaseRole and a required /
preferred ModelCapability set (see UseCase::required_capabilities).
Variants§
Assistant
General chat / Q&A. The default.
Coding
Code generation, repair, refactoring.
Summarize
Text condensation.
Vision
Image understanding (a generative model that also sees).
Transcription
Audio → text.
Search
Semantic search — an embedding model for retrieval. NOT an LLM
performing web search with tools; this is the Retrieval role and
maps to the Embed capability, so it is ranked separately from any
generative chat model.
Implementations§
Source§impl UseCase
impl UseCase
Sourcepub fn role(self) -> UseCaseRole
pub fn role(self) -> UseCaseRole
The role lane this use case is ranked within.
Sourcepub fn required_capabilities(self) -> &'static [ModelCapability]
pub fn required_capabilities(self) -> &'static [ModelCapability]
Hard eligibility filter — a model missing any of these is excluded.
Sourcepub fn preferred_capabilities(self) -> &'static [ModelCapability]
pub fn preferred_capabilities(self) -> &'static [ModelCapability]
Soft preference — present capabilities add a ranking bonus but are never required for eligibility.
Trait Implementations§
impl Copy for UseCase
Source§impl<'de> Deserialize<'de> for UseCase
impl<'de> Deserialize<'de> for UseCase
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>,
impl Eq for UseCase
impl StructuralPartialEq for UseCase
Auto Trait Implementations§
impl Freeze for UseCase
impl RefUnwindSafe for UseCase
impl Send for UseCase
impl Sync for UseCase
impl Unpin for UseCase
impl UnsafeUnpin for UseCase
impl UnwindSafe for UseCase
Blanket Implementations§
impl<T> Boilerplate for T
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
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>
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>
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