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}