Skip to main content

ScratchElement

Trait ScratchElement 

Source
pub trait ScratchElement:
    ScratchElementSealed
    + Copy
    + Send
    + Sync
    + 'static {
    const ALIGN_BYTES: usize;
}
Expand description

Element types that the scratch pool can manage.

Implemented for f32, f64, u8, common integer types, and (with the eunomia feature) eunomia::Complex<f32> and eunomia::Complex<f64>. With the bytemuck feature, a blanket impl covers any bytemuck::Zeroable + Copy + Send + Sync + 'static type — including arbitrary repr(C) POD structs that derive Zeroable.

§Safety invariant

Every implementor must tolerate an all-zero bit pattern as a valid, non-trapping value. This is true for all floating-point scalars (±0.0), all integers (0), eunomia complex numbers, and any type that implements bytemuck::Zeroable. Types with validity invariants (e.g. non-null pointers, Rust references, enums with niche optimizations) must not implement this trait.

Required Associated Constants§

Source

const ALIGN_BYTES: usize

Alignment in bytes required for SIMD operations on this element type.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl ScratchElement for bool

Source§

const ALIGN_BYTES: usize = DEFAULT_SCRATCH_ALIGN

Source§

impl ScratchElement for f32

Source§

const ALIGN_BYTES: usize = DEFAULT_SCRATCH_ALIGN

Source§

impl ScratchElement for f64

Source§

const ALIGN_BYTES: usize = DEFAULT_SCRATCH_ALIGN

Source§

impl ScratchElement for i8

Source§

const ALIGN_BYTES: usize = DEFAULT_SCRATCH_ALIGN

Source§

impl ScratchElement for i16

Source§

const ALIGN_BYTES: usize = DEFAULT_SCRATCH_ALIGN

Source§

impl ScratchElement for i32

Source§

const ALIGN_BYTES: usize = DEFAULT_SCRATCH_ALIGN

Source§

impl ScratchElement for i64

Source§

const ALIGN_BYTES: usize = DEFAULT_SCRATCH_ALIGN

Source§

impl ScratchElement for isize

Source§

const ALIGN_BYTES: usize = DEFAULT_SCRATCH_ALIGN

Source§

impl ScratchElement for u8

Source§

const ALIGN_BYTES: usize = DEFAULT_SCRATCH_ALIGN

Source§

impl ScratchElement for u16

Source§

const ALIGN_BYTES: usize = DEFAULT_SCRATCH_ALIGN

Source§

impl ScratchElement for u32

Source§

const ALIGN_BYTES: usize = DEFAULT_SCRATCH_ALIGN

Source§

impl ScratchElement for u64

Source§

const ALIGN_BYTES: usize = DEFAULT_SCRATCH_ALIGN

Source§

impl ScratchElement for usize

Source§

const ALIGN_BYTES: usize = DEFAULT_SCRATCH_ALIGN

Implementors§