pub struct CapabilityFilter {
pub require_tags: Vec<String>,
pub require_models: Vec<String>,
pub require_tools: Vec<String>,
pub min_memory_gb: Option<u32>,
pub require_gpu: bool,
pub gpu_vendor: Option<GpuVendor>,
pub min_vram_gb: Option<u32>,
pub min_context_length: Option<u32>,
pub require_modalities: Vec<Modality>,
}Expand description
Filter for querying capabilities
Fields§
Require specific tags (all must match)
require_models: Vec<String>Require specific models (any must match)
require_tools: Vec<String>Require specific tools (any must match)
min_memory_gb: Option<u32>Minimum memory in GB
require_gpu: boolRequire GPU
gpu_vendor: Option<GpuVendor>Specific GPU vendor
min_vram_gb: Option<u32>Minimum VRAM in GB
min_context_length: Option<u32>Minimum context length
require_modalities: Vec<Modality>Require specific modalities
Implementations§
Source§impl CapabilityFilter
impl CapabilityFilter
Sourcepub fn new() -> CapabilityFilter
pub fn new() -> CapabilityFilter
Create empty filter (matches all)
Sourcepub fn require_tag(self, tag: impl Into<String>) -> CapabilityFilter
pub fn require_tag(self, tag: impl Into<String>) -> CapabilityFilter
Require tag
Sourcepub fn require_model(self, model: impl Into<String>) -> CapabilityFilter
pub fn require_model(self, model: impl Into<String>) -> CapabilityFilter
Require model
Sourcepub fn require_tool(self, tool: impl Into<String>) -> CapabilityFilter
pub fn require_tool(self, tool: impl Into<String>) -> CapabilityFilter
Require tool
Sourcepub fn with_min_memory(self, gb: u32) -> CapabilityFilter
pub fn with_min_memory(self, gb: u32) -> CapabilityFilter
Set minimum memory
Sourcepub fn require_gpu(self) -> CapabilityFilter
pub fn require_gpu(self) -> CapabilityFilter
Require GPU
Sourcepub fn with_gpu_vendor(self, vendor: GpuVendor) -> CapabilityFilter
pub fn with_gpu_vendor(self, vendor: GpuVendor) -> CapabilityFilter
Require specific GPU vendor
Sourcepub fn with_min_vram(self, gb: u32) -> CapabilityFilter
pub fn with_min_vram(self, gb: u32) -> CapabilityFilter
Set minimum VRAM
Sourcepub fn with_min_context(self, length: u32) -> CapabilityFilter
pub fn with_min_context(self, length: u32) -> CapabilityFilter
Set minimum context length
Sourcepub fn require_modality(self, modality: Modality) -> CapabilityFilter
pub fn require_modality(self, modality: Modality) -> CapabilityFilter
Require modality
Sourcepub fn matches(&self, caps: &CapabilitySet) -> bool
pub fn matches(&self, caps: &CapabilitySet) -> bool
Check if a capability set matches this filter.
Phase A.5.2: reads through caps.views() for the
hardware / models / tools projections. Methods that already
abstract field access (has_tag / has_gpu / has_model
/ has_tool) keep working unchanged. Once Phase A.5.N
removes the typed-struct fields from CapabilitySet, the
views() body becomes a tag-set scan and this matcher
keeps working without further changes.
Trait Implementations§
Source§impl Clone for CapabilityFilter
impl Clone for CapabilityFilter
Source§fn clone(&self) -> CapabilityFilter
fn clone(&self) -> CapabilityFilter
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more