pub trait ModelStorage {
// Required methods
async fn download<F>(
&self,
request: &DownloadRequest<'_>,
progress: F,
) -> Result<DownloadResult>
where F: Fn(PullProgress) + Send + 'static;
fn list_models(&self) -> Result<Vec<ModelInfo>, BackendError>;
fn exists(&self, model_id: &str) -> bool;
fn model_info(&self, model_id: &str) -> Result<ModelInfo, BackendError>;
fn delete(&self, model_id: &str) -> Result<(), BackendError>;
fn model_path(&self, model_id: &str) -> Result<PathBuf, BackendError>;
}Expand description
Trait for model storage backends.
Provides a common interface for downloading and managing local models.
Required Methods§
Sourceasync fn download<F>(
&self,
request: &DownloadRequest<'_>,
progress: F,
) -> Result<DownloadResult>
async fn download<F>( &self, request: &DownloadRequest<'_>, progress: F, ) -> Result<DownloadResult>
Download a model with progress callback.
Sourcefn list_models(&self) -> Result<Vec<ModelInfo>, BackendError>
fn list_models(&self) -> Result<Vec<ModelInfo>, BackendError>
List all downloaded models.
Sourcefn model_info(&self, model_id: &str) -> Result<ModelInfo, BackendError>
fn model_info(&self, model_id: &str) -> Result<ModelInfo, BackendError>
Get info about a local model.
Sourcefn model_path(&self, model_id: &str) -> Result<PathBuf, BackendError>
fn model_path(&self, model_id: &str) -> Result<PathBuf, BackendError>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.