pub trait Tensor:
Clone
+ Send
+ Sync {
type Dtype: DataType;
type Backend: Backend;
// Required methods
fn shape(&self) -> &[usize];
fn dtype(&self) -> Self::Dtype;
fn device(&self) -> <Self::Backend as Backend>::Device;
fn to_device(
&self,
device: &<Self::Backend as Backend>::Device,
) -> Result<Self, <Self::Backend as Backend>::Error>;
fn reshape(
&self,
shape: &[usize],
) -> Result<Self, <Self::Backend as Backend>::Error>;
fn contiguous(&self) -> Result<Self, <Self::Backend as Backend>::Error>;
// Provided method
fn numel(&self) -> usize { ... }
}
Required Associated Types§
Required Methods§
fn shape(&self) -> &[usize]
fn dtype(&self) -> Self::Dtype
fn device(&self) -> <Self::Backend as Backend>::Device
fn to_device( &self, device: &<Self::Backend as Backend>::Device, ) -> Result<Self, <Self::Backend as Backend>::Error>
fn reshape( &self, shape: &[usize], ) -> Result<Self, <Self::Backend as Backend>::Error>
fn contiguous(&self) -> Result<Self, <Self::Backend as Backend>::Error>
Provided Methods§
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.