pub struct CapabilityRequirements {
pub structured_output: Vec<StructuredOutputCapability>,
pub needs_tools: bool,
pub needs_streaming: bool,
pub min_context_tokens: Option<u64>,
pub needs_vision: bool,
pub needs_documents: bool,
}Expand description
What a request or purpose demands of a provider.
An empty structured_output set means “no structured-output requirement”.
Fields§
§structured_output: Vec<StructuredOutputCapability>Acceptable structured-output transports; empty means none required.
needs_tools: boolTool calling is needed.
needs_streaming: boolStreaming is needed.
min_context_tokens: Option<u64>Minimum declared context window, in tokens.
needs_vision: boolImage input is needed.
needs_documents: boolDocument input is needed.
Implementations§
Source§impl CapabilityRequirements
impl CapabilityRequirements
Sourcepub fn with_tools(self) -> Self
pub fn with_tools(self) -> Self
Requires tool calling.
Sourcepub fn with_streaming(self) -> Self
pub fn with_streaming(self) -> Self
Requires streaming.
Sourcepub fn with_vision(self) -> Self
pub fn with_vision(self) -> Self
Requires vision.
Sourcepub fn with_documents(self) -> Self
pub fn with_documents(self) -> Self
Requires document input.
Sourcepub fn with_min_context_tokens(self, tokens: u64) -> Self
pub fn with_min_context_tokens(self, tokens: u64) -> Self
Requires a minimum context window.
Sourcepub fn satisfied_by(
&self,
caps: &ProviderCapabilities,
) -> Result<(), CapabilityMismatch>
pub fn satisfied_by( &self, caps: &ProviderCapabilities, ) -> Result<(), CapabilityMismatch>
Checks the requirements against a declaration.
Every unmet requirement is reported, in the order: structured output, tool calling, streaming, vision, documents, context window. An unknown context window fails a context requirement (fail closed).
Trait Implementations§
Source§impl Clone for CapabilityRequirements
impl Clone for CapabilityRequirements
Source§impl Debug for CapabilityRequirements
impl Debug for CapabilityRequirements
Source§impl Default for CapabilityRequirements
impl Default for CapabilityRequirements
Source§impl<'de> Deserialize<'de> for CapabilityRequirements
impl<'de> Deserialize<'de> for CapabilityRequirements
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>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for CapabilityRequirements
Source§impl Hash for CapabilityRequirements
impl Hash for CapabilityRequirements
Source§impl PartialEq for CapabilityRequirements
impl PartialEq for CapabilityRequirements
Source§impl Serialize for CapabilityRequirements
impl Serialize for CapabilityRequirements
impl StructuralPartialEq for CapabilityRequirements
Auto Trait Implementations§
impl Freeze for CapabilityRequirements
impl RefUnwindSafe for CapabilityRequirements
impl Send for CapabilityRequirements
impl Sync for CapabilityRequirements
impl Unpin for CapabilityRequirements
impl UnsafeUnpin for CapabilityRequirements
impl UnwindSafe for CapabilityRequirements
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> 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
Compare self to
key and return true if they are equal.