#[non_exhaustive]pub enum CastDType {
F32,
F64,
I32,
I64,
Bool,
}Expand description
cast 対象 dtype のタグ(イシュー #1750)。
crate::element::ScalarDType(演算対象 dtype 専用・TypedOps<T>/
GEMM 経路選択規則用)とは別 enumとする。Scalar(ScalarDType
の対象)は f32/f64/half::f16/half::bf16 の 4 型に封印
されており、CastDType が持つ I32/I64/Bool を追加すると
Scalar の意味論(演算対象・GEMM 経路選択規則の対象)を汚染する
(docs/backend-dtype-dispatch-design.md §4.4 の整理を維持)。
#[non_exhaustive]: 将来 dtype(half::f16/half::bf16 等)を
追加する際に公開 API を破壊しないため(ScalarDType・BackendError
等、本クレートの他の公開 enum と同じ方針)。
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Trait Implementations§
impl Copy for CastDType
impl Eq for CastDType
impl StructuralPartialEq for CastDType
Auto Trait Implementations§
impl Freeze for CastDType
impl RefUnwindSafe for CastDType
impl Send for CastDType
impl Sync for CastDType
impl Unpin for CastDType
impl UnsafeUnpin for CastDType
impl UnwindSafe for CastDType
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more