#[non_exhaustive]pub enum ChatCapability {
ToolCalls,
ParallelToolCalls,
Streaming,
NativeStreaming,
ImageInput,
ImageDetail,
ImageOutput,
ImageReplay,
StructuredOutput,
ReasoningOutput,
ReasoningReplay,
ReasoningConfig,
}Expand description
Portable chat features that a provider/model may support.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
ToolCalls
Supports tool definitions and model-emitted tool call blocks.
ParallelToolCalls
Supports requesting multiple tool calls in a single assistant turn.
Streaming
Supports incremental response delivery through ChatProvider::chat_stream.
This covers both native provider streaming and simulated streaming via
crate::SingleResponseStream. Query NativeStreaming
to distinguish between the two modes.
NativeStreaming
Provider delivers genuinely incremental streaming from the upstream API.
Supported means ChatProvider::chat_stream returns a stream backed by
real incremental delivery (e.g. SSE). Unsupported means the provider
simulates streaming by replaying a fully materialized response through
crate::SingleResponseStream. Unknown means the provider does not
report this distinction.
A provider that reports NativeStreaming: Supported implicitly satisfies
Streaming as well.
ImageInput
Supports image parts in user messages.
ImageDetail
Supports per-image detail hints on user image parts.
ImageOutput
May emit image blocks in assistant responses.
ImageReplay
Supports replaying assistant image blocks back to the model in later turns.
StructuredOutput
Supports non-text response formats such as JSON or JSON Schema output.
ReasoningOutput
May emit reasoning blocks in assistant responses.
ReasoningReplay
Supports replaying assistant reasoning blocks back to the model in later turns.
ReasoningConfig
Supports request-side reasoning configuration via crate::ReasoningConfig.
Trait Implementations§
Source§impl Clone for ChatCapability
impl Clone for ChatCapability
Source§fn clone(&self) -> ChatCapability
fn clone(&self) -> ChatCapability
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more