inferox_core/backend.rs
1use crate::{Device, Tensor, TensorBuilder};
2
3pub trait Backend: Send + Sync + 'static {
4 type Tensor: Tensor;
5
6 type Error: std::error::Error + Send + Sync + 'static;
7
8 type Device: Device;
9
10 type TensorBuilder: TensorBuilder<Self>;
11
12 fn name(&self) -> &str;
13
14 fn devices(&self) -> Result<Vec<Self::Device>, Self::Error>;
15
16 fn default_device(&self) -> Self::Device;
17
18 fn tensor_builder(&self) -> Self::TensorBuilder;
19}