pub struct KernelRegistry { /* private fields */ }Expand description
Central registry for all kernels.
Implementations§
Source§impl KernelRegistry
impl KernelRegistry
Sourcepub fn with_license(license: SharedLicenseValidator) -> Self
pub fn with_license(license: SharedLicenseValidator) -> Self
Create a registry with license validation.
Sourcepub fn set_license(&mut self, license: SharedLicenseValidator)
pub fn set_license(&mut self, license: SharedLicenseValidator)
Set the license validator.
Sourcepub fn register_batch(&self, entry: BatchKernelEntry) -> Result<()>
pub fn register_batch(&self, entry: BatchKernelEntry) -> Result<()>
Register a batch kernel.
Sourcepub fn register_ring(&self, entry: RingKernelEntry) -> Result<()>
pub fn register_ring(&self, entry: RingKernelEntry) -> Result<()>
Register a ring kernel.
Sourcepub fn register_metadata(&self, metadata: KernelMetadata) -> Result<()>
pub fn register_metadata(&self, metadata: KernelMetadata) -> Result<()>
Register kernel metadata without a factory.
This is useful for kernels that implement GpuKernel but not the type-erased
BatchKernelDyn or RingKernelDyn traits. The metadata is stored for discovery
purposes, but the kernel cannot be instantiated through the registry.
Sourcepub fn get_batch(&self, id: &str) -> Option<BatchKernelEntry>
pub fn get_batch(&self, id: &str) -> Option<BatchKernelEntry>
Get a batch kernel by ID.
Sourcepub fn get_ring(&self, id: &str) -> Option<RingKernelEntry>
pub fn get_ring(&self, id: &str) -> Option<RingKernelEntry>
Get a ring kernel by ID.
Sourcepub fn get(&self, id: &str) -> Option<KernelMetadata>
pub fn get(&self, id: &str) -> Option<KernelMetadata>
Get any kernel metadata by ID (batch, ring, or metadata-only).
Sourcepub fn get_metadata_only(&self, id: &str) -> Option<KernelMetadata>
pub fn get_metadata_only(&self, id: &str) -> Option<KernelMetadata>
Get metadata-only entry by ID.
Sourcepub fn batch_kernel_ids(&self) -> Vec<String>
pub fn batch_kernel_ids(&self) -> Vec<String>
Get all batch kernel IDs.
Sourcepub fn ring_kernel_ids(&self) -> Vec<String>
pub fn ring_kernel_ids(&self) -> Vec<String>
Get all ring kernel IDs.
Sourcepub fn metadata_only_ids(&self) -> Vec<String>
pub fn metadata_only_ids(&self) -> Vec<String>
Get all metadata-only kernel IDs.
Sourcepub fn all_kernel_ids(&self) -> Vec<String>
pub fn all_kernel_ids(&self) -> Vec<String>
Get all kernel IDs.
Sourcepub fn by_domain(&self, domain: Domain) -> Vec<KernelMetadata>
pub fn by_domain(&self, domain: Domain) -> Vec<KernelMetadata>
Get kernels by domain.
Sourcepub fn by_mode(&self, mode: KernelMode) -> Vec<KernelMetadata>
pub fn by_mode(&self, mode: KernelMode) -> Vec<KernelMetadata>
Get kernels by mode.
Sourcepub fn stats(&self) -> RegistryStats
pub fn stats(&self) -> RegistryStats
Get registry statistics.
Sourcepub fn total_count(&self) -> usize
pub fn total_count(&self) -> usize
Total number of registered kernels.
Sourcepub fn unregister(&self, id: &str) -> bool
pub fn unregister(&self, id: &str) -> bool
Unregister a kernel by ID.