pub trait ComputeBackend<InP: Payload, OutP: Payload> {
type Model: ComputeModel<InP, OutP>;
type Error;
type ModelDescriptor<'desc>
where Self: 'desc;
// Required methods
fn capabilities(&self) -> BackendCapabilities;
fn load_model<'desc>(
&self,
desc: Self::ModelDescriptor<'desc>,
) -> Result<Self::Model, Self::Error>;
}Expand description
A dyn-free engine that constructs models and reports capabilities.
Required Associated Types§
Sourcetype Model: ComputeModel<InP, OutP>
type Model: ComputeModel<InP, OutP>
Concrete model type (no trait objects).
Sourcetype ModelDescriptor<'desc>
where
Self: 'desc
type ModelDescriptor<'desc> where Self: 'desc
Backend-chosen borrowed descriptor used to load a model.
Examples:
- on
std:type ModelDescriptor<'desc> = &'desc ModelArtifact; - on
no_std:type ModelDescriptor<'desc> = &'desc [u8];
Required Methods§
Sourcefn capabilities(&self) -> BackendCapabilities
fn capabilities(&self) -> BackendCapabilities
Capability report.
Sourcefn load_model<'desc>(
&self,
desc: Self::ModelDescriptor<'desc>,
) -> Result<Self::Model, Self::Error>
fn load_model<'desc>( &self, desc: Self::ModelDescriptor<'desc>, ) -> Result<Self::Model, Self::Error>
Load a model from a descriptor.
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.