pub enum ImplementationQuality {
Dreadful,
Generic,
RustOptimized,
TargetOptimized,
ManuallyOptimized,
}Variants§
Dreadful
Individual operations are emulated by individual conversion (f16->f32->f16)
Generic
Rust scalar operation (with whatever optimisation the compiler manages)
RustOptimized
Implicit vectorization (e.g. Rust code, some unrolled loops, explicit template instantiations for small constant)
TargetOptimized
Explicit vectorization (e.g. intrinsics vector code)
ManuallyOptimized
Hand optimized (assembly)
Implementations§
Source§impl ImplementationQuality
impl ImplementationQuality
pub fn best_to_worst() -> &'static [ImplementationQuality]
pub fn cost(&self) -> usize
Trait Implementations§
Source§impl Clone for ImplementationQuality
impl Clone for ImplementationQuality
Source§fn clone(&self) -> ImplementationQuality
fn clone(&self) -> ImplementationQuality
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ImplementationQuality
impl Debug for ImplementationQuality
Source§impl Hash for ImplementationQuality
impl Hash for ImplementationQuality
Source§impl PartialEq for ImplementationQuality
impl PartialEq for ImplementationQuality
Source§impl PartialOrd for ImplementationQuality
impl PartialOrd for ImplementationQuality
impl Copy for ImplementationQuality
impl Eq for ImplementationQuality
impl StructuralPartialEq for ImplementationQuality
Auto Trait Implementations§
impl Freeze for ImplementationQuality
impl RefUnwindSafe for ImplementationQuality
impl Send for ImplementationQuality
impl Sync for ImplementationQuality
impl Unpin for ImplementationQuality
impl UnwindSafe for ImplementationQuality
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
Source§impl<T> ClampCast for Twhere
T: PartialOrd + Copy + 'static,
impl<T> ClampCast for Twhere
T: PartialOrd + Copy + 'static,
fn clamp_cast<O>(self) -> O
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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