Skip to main content

BackendRegistry

Trait BackendRegistry 

Source
pub trait BackendRegistry: Send + Sync {
    // Required methods
    fn register_compute_backend(
        &mut self,
        name: &str,
        backend: Box<dyn ComputeBackend>,
    ) -> Result<()>;
    fn register_weight_loader(
        &mut self,
        name: &str,
        loader: Box<dyn WeightLoader>,
    ) -> Result<()>;
    fn get_compute_backend(&self, name: &str) -> Option<&dyn ComputeBackend>;
    fn get_weight_loader(&self, name: &str) -> Option<&dyn WeightLoader>;
    fn find_best_compute_backend(
        &self,
        requirements: &BackendRequirements,
    ) -> Option<&dyn ComputeBackend>;
    fn list_backend_names(&self) -> (Vec<String>, Vec<String>);
}
Expand description

Backend registry for managing multiple backends

Required Methods§

Source

fn register_compute_backend( &mut self, name: &str, backend: Box<dyn ComputeBackend>, ) -> Result<()>

Register compute backend

Source

fn register_weight_loader( &mut self, name: &str, loader: Box<dyn WeightLoader>, ) -> Result<()>

Register weight loader

Source

fn get_compute_backend(&self, name: &str) -> Option<&dyn ComputeBackend>

Get compute backend by name

Source

fn get_weight_loader(&self, name: &str) -> Option<&dyn WeightLoader>

Get weight loader by name

Source

fn find_best_compute_backend( &self, requirements: &BackendRequirements, ) -> Option<&dyn ComputeBackend>

Find best compute backend for requirements

Source

fn list_backend_names(&self) -> (Vec<String>, Vec<String>)

List all registered backend names

Implementors§