pub enum ThinkingShape {
ProviderDefault,
AnthropicAdaptive,
AnthropicBudget,
GeminiLevel,
GeminiBudget {
min: i32,
can_disable: bool,
},
OllamaEffortString,
}Expand description
Which thinking/reasoning wire shape the model’s requests use.
Consumed by the anthropic, gemini, and ollama adapters — each reacts only
to its own variants and treats everything else as ProviderDefault.
Variants§
ProviderDefault
No catalog opinion: the adapter falls back to its provider default
(anthropic → legacy budget_tokens; gemini → omit thinkingConfig;
ollama → think: bool gated by the live probe; openai-compat →
the ProviderProfile strategy).
AnthropicAdaptive
Anthropic 4.6+ adaptive thinking: thinking: {type: "adaptive"} +
output_config.effort (legacy budget_tokens is rejected/deprecated).
AnthropicBudget
Anthropic legacy thinking: thinking: {type: "enabled", budget_tokens}.
GeminiLevel
Gemini 3.x thinkingLevel enum (cannot truly disable).
GeminiBudget
Gemini 2.5 integer thinkingBudget, clamped to the model’s range.
Fields
OllamaEffortString
Ollama gpt-oss: think: "low"|"medium"|"high" string enum instead of
the usual think: bool.
Trait Implementations§
Source§impl Clone for ThinkingShape
impl Clone for ThinkingShape
Source§fn clone(&self) -> ThinkingShape
fn clone(&self) -> ThinkingShape
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ThinkingShape
Source§impl Debug for ThinkingShape
impl Debug for ThinkingShape
impl Eq for ThinkingShape
Source§impl PartialEq for ThinkingShape
impl PartialEq for ThinkingShape
impl StructuralPartialEq for ThinkingShape
Auto Trait Implementations§
impl Freeze for ThinkingShape
impl RefUnwindSafe for ThinkingShape
impl Send for ThinkingShape
impl Sync for ThinkingShape
impl Unpin for ThinkingShape
impl UnsafeUnpin for ThinkingShape
impl UnwindSafe for ThinkingShape
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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)
&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)
&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<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