Trait krnl_core::scalar::Scalar

source ·
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§

source

const SCALAR_TYPE: ScalarType

The ScalarType of the scalar.

Required Methods§

source

fn scalar_elem(self) -> ScalarElem

Available on non-target_arch="spirv" only.

Converts to ScalarElem.

source

fn cast<T: Scalar>(self) -> T

Casts self as T.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Scalar for f32

source§

const SCALAR_TYPE: ScalarType = ScalarType::F32

source§

fn scalar_elem(self) -> ScalarElem

Available on non-target_arch="spirv" only.
source§

fn cast<T: Scalar>(self) -> T

source§

impl Scalar for f64

source§

const SCALAR_TYPE: ScalarType = ScalarType::F64

source§

fn scalar_elem(self) -> ScalarElem

Available on non-target_arch="spirv" only.
source§

fn cast<T: Scalar>(self) -> T

source§

impl Scalar for i8

source§

const SCALAR_TYPE: ScalarType = ScalarType::I8

source§

fn scalar_elem(self) -> ScalarElem

Available on non-target_arch="spirv" only.
source§

fn cast<T: Scalar>(self) -> T

source§

impl Scalar for i16

source§

const SCALAR_TYPE: ScalarType = ScalarType::I16

source§

fn scalar_elem(self) -> ScalarElem

Available on non-target_arch="spirv" only.
source§

fn cast<T: Scalar>(self) -> T

source§

impl Scalar for i32

source§

const SCALAR_TYPE: ScalarType = ScalarType::I32

source§

fn scalar_elem(self) -> ScalarElem

Available on non-target_arch="spirv" only.
source§

fn cast<T: Scalar>(self) -> T

source§

impl Scalar for i64

source§

const SCALAR_TYPE: ScalarType = ScalarType::I64

source§

fn scalar_elem(self) -> ScalarElem

Available on non-target_arch="spirv" only.
source§

fn cast<T: Scalar>(self) -> T

source§

impl Scalar for u8

source§

const SCALAR_TYPE: ScalarType = ScalarType::U8

source§

fn scalar_elem(self) -> ScalarElem

Available on non-target_arch="spirv" only.
source§

fn cast<T: Scalar>(self) -> T

source§

impl Scalar for u16

source§

const SCALAR_TYPE: ScalarType = ScalarType::U16

source§

fn scalar_elem(self) -> ScalarElem

Available on non-target_arch="spirv" only.
source§

fn cast<T: Scalar>(self) -> T

source§

impl Scalar for u32

source§

const SCALAR_TYPE: ScalarType = ScalarType::U32

source§

fn scalar_elem(self) -> ScalarElem

Available on non-target_arch="spirv" only.
source§

fn cast<T: Scalar>(self) -> T

source§

impl Scalar for u64

source§

const SCALAR_TYPE: ScalarType = ScalarType::U64

source§

fn scalar_elem(self) -> ScalarElem

Available on non-target_arch="spirv" only.
source§

fn cast<T: Scalar>(self) -> T

source§

impl Scalar for bf16

source§

const SCALAR_TYPE: ScalarType = ScalarType::BF16

source§

fn scalar_elem(self) -> ScalarElem

Available on non-target_arch="spirv" only.
source§

fn cast<T: Scalar>(self) -> T

source§

impl Scalar for f16

source§

const SCALAR_TYPE: ScalarType = ScalarType::F16

source§

fn scalar_elem(self) -> ScalarElem

Available on non-target_arch="spirv" only.
source§

fn cast<T: Scalar>(self) -> T

Implementors§