pub trait TensorScalar:
Copy
+ Clone
+ Send
+ Sync
+ 'static
+ Sealed {
type Real: TensorScalar;
// Required methods
fn dtype() -> DType;
fn into_tensor(shape: ShapeVec, data: Vec<Self>) -> Result<Tensor>;
fn tensor_slice(tensor: &Tensor) -> Option<&[Self]>;
fn tensor_mut_slice(tensor: &mut Tensor) -> Option<&mut [Self]>;
fn into_typed(tensor: Tensor) -> Option<HostTensor<Self>>;
}Expand description
Sealed trait for scalar types supported by the core tensor data model.
§Examples
use tenferro_tensor_core::{DType, TensorScalar};
assert_eq!(f64::dtype(), DType::F64);
assert_eq!(num_complex::Complex64::dtype(), DType::C64);Required Associated Types§
Sourcetype Real: TensorScalar
type Real: TensorScalar
Real-valued counterpart of this scalar type.
Required Methods§
Sourcefn dtype() -> DType
fn dtype() -> DType
Return the scalar dtype tag.
§Examples
use tenferro_tensor_core::{DType, TensorScalar};
assert_eq!(i64::dtype(), DType::I64);Sourcefn into_tensor(shape: ShapeVec, data: Vec<Self>) -> Result<Tensor>
fn into_tensor(shape: ShapeVec, data: Vec<Self>) -> Result<Tensor>
Build a dynamic tensor from validated column-major data.
§Examples
use tenferro_tensor_core::{DType, ShapeVec, TensorScalar};
let tensor = <f64 as TensorScalar>::into_tensor(ShapeVec::from_slice(&[1]), vec![2.0])?;
assert_eq!(tensor.dtype(), DType::F64);fn tensor_slice(tensor: &Tensor) -> Option<&[Self]>
fn tensor_mut_slice(tensor: &mut Tensor) -> Option<&mut [Self]>
fn into_typed(tensor: Tensor) -> Option<HostTensor<Self>>
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.