pub enum ReasoningCapability {
Unsupported,
Binary,
Levels(Vec<ReasoningLevel>),
Budget {
min: usize,
max: usize,
},
}Expand description
Describes the reasoning controls a model exposes.
Adapters declare this via ModelCapabilities::supports_reasoning.
The user-facing ReasoningLevel is mapped onto whatever shape the
model actually accepts via nearest_effort().
Variants§
Unsupported
Model has no reasoning controls. Any ReasoningLevel is silently
ignored by the adapter.
Binary
Model has on/off reasoning only (most Ollama-hosted models like
deepseek-r1, qwen3, kimi-k2-thinking — think: true/false).
ReasoningLevel::None → off; anything else → on.
Levels(Vec<ReasoningLevel>)
Model exposes a discrete enum of supported levels (gpt-oss,
OpenAI o-series + GPT-5, Anthropic adaptive thinking, Groq,
Fireworks, vLLM-on-gpt-oss). nearest_effort() maps the
requested level onto this set.
Budget
Model expects a numeric token budget (legacy Anthropic
budget_tokens, legacy Gemini 2.5 thinking_budget). Adapters
translate ReasoningLevel onto a value in [min, max].
Trait Implementations§
Source§impl Clone for ReasoningCapability
impl Clone for ReasoningCapability
Source§fn clone(&self) -> ReasoningCapability
fn clone(&self) -> ReasoningCapability
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ReasoningCapability
impl Debug for ReasoningCapability
impl Eq for ReasoningCapability
Source§impl PartialEq for ReasoningCapability
impl PartialEq for ReasoningCapability
Source§fn eq(&self, other: &ReasoningCapability) -> bool
fn eq(&self, other: &ReasoningCapability) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for ReasoningCapability
Auto Trait Implementations§
impl Freeze for ReasoningCapability
impl RefUnwindSafe for ReasoningCapability
impl Send for ReasoningCapability
impl Sync for ReasoningCapability
impl Unpin for ReasoningCapability
impl UnsafeUnpin for ReasoningCapability
impl UnwindSafe for ReasoningCapability
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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.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