pub trait Scalar: Default + Copy + 'static + Send + Sync + NumCast + FromPrimitive + NumAssign + PartialEq + PartialOrd + Pod + Debug + Display + Serialize + for<'de> Deserialize<'de> + Sealed {
const SCALAR_TYPE: ScalarType;
// Required methods
fn scalar_elem(self) -> ScalarElem;
fn cast<T: Scalar>(self) -> T;
}
Expand description
Base trait for numerical types.
Required Associated Constants§
sourceconst SCALAR_TYPE: ScalarType
const SCALAR_TYPE: ScalarType
The ScalarType
of the scalar.
Required Methods§
sourcefn scalar_elem(self) -> ScalarElem
Available on non-target_arch="spirv"
only.
fn scalar_elem(self) -> ScalarElem
target_arch="spirv"
only.Converts to ScalarElem
.
Object Safety§
This trait is not object safe.
Implementations on Foreign Types§
source§impl Scalar for f32
impl Scalar for f32
const SCALAR_TYPE: ScalarType = ScalarType::F32
source§fn scalar_elem(self) -> ScalarElem
fn scalar_elem(self) -> ScalarElem
Available on non-
target_arch="spirv"
only.fn cast<T: Scalar>(self) -> T
source§impl Scalar for f64
impl Scalar for f64
const SCALAR_TYPE: ScalarType = ScalarType::F64
source§fn scalar_elem(self) -> ScalarElem
fn scalar_elem(self) -> ScalarElem
Available on non-
target_arch="spirv"
only.fn cast<T: Scalar>(self) -> T
source§impl Scalar for i8
impl Scalar for i8
const SCALAR_TYPE: ScalarType = ScalarType::I8
source§fn scalar_elem(self) -> ScalarElem
fn scalar_elem(self) -> ScalarElem
Available on non-
target_arch="spirv"
only.fn cast<T: Scalar>(self) -> T
source§impl Scalar for i16
impl Scalar for i16
const SCALAR_TYPE: ScalarType = ScalarType::I16
source§fn scalar_elem(self) -> ScalarElem
fn scalar_elem(self) -> ScalarElem
Available on non-
target_arch="spirv"
only.fn cast<T: Scalar>(self) -> T
source§impl Scalar for i32
impl Scalar for i32
const SCALAR_TYPE: ScalarType = ScalarType::I32
source§fn scalar_elem(self) -> ScalarElem
fn scalar_elem(self) -> ScalarElem
Available on non-
target_arch="spirv"
only.fn cast<T: Scalar>(self) -> T
source§impl Scalar for i64
impl Scalar for i64
const SCALAR_TYPE: ScalarType = ScalarType::I64
source§fn scalar_elem(self) -> ScalarElem
fn scalar_elem(self) -> ScalarElem
Available on non-
target_arch="spirv"
only.fn cast<T: Scalar>(self) -> T
source§impl Scalar for u8
impl Scalar for u8
const SCALAR_TYPE: ScalarType = ScalarType::U8
source§fn scalar_elem(self) -> ScalarElem
fn scalar_elem(self) -> ScalarElem
Available on non-
target_arch="spirv"
only.fn cast<T: Scalar>(self) -> T
source§impl Scalar for u16
impl Scalar for u16
const SCALAR_TYPE: ScalarType = ScalarType::U16
source§fn scalar_elem(self) -> ScalarElem
fn scalar_elem(self) -> ScalarElem
Available on non-
target_arch="spirv"
only.fn cast<T: Scalar>(self) -> T
source§impl Scalar for u32
impl Scalar for u32
const SCALAR_TYPE: ScalarType = ScalarType::U32
source§fn scalar_elem(self) -> ScalarElem
fn scalar_elem(self) -> ScalarElem
Available on non-
target_arch="spirv"
only.fn cast<T: Scalar>(self) -> T
source§impl Scalar for u64
impl Scalar for u64
const SCALAR_TYPE: ScalarType = ScalarType::U64
source§fn scalar_elem(self) -> ScalarElem
fn scalar_elem(self) -> ScalarElem
Available on non-
target_arch="spirv"
only.fn cast<T: Scalar>(self) -> T
source§impl Scalar for bf16
impl Scalar for bf16
const SCALAR_TYPE: ScalarType = ScalarType::BF16
source§fn scalar_elem(self) -> ScalarElem
fn scalar_elem(self) -> ScalarElem
Available on non-
target_arch="spirv"
only.fn cast<T: Scalar>(self) -> T
source§impl Scalar for f16
impl Scalar for f16
const SCALAR_TYPE: ScalarType = ScalarType::F16
source§fn scalar_elem(self) -> ScalarElem
fn scalar_elem(self) -> ScalarElem
Available on non-
target_arch="spirv"
only.