Trait audio_core::Sample

source ·
pub unsafe trait Sample: Copy + Default {
    const ZERO: Self;
}
Expand description

A sample that can be stored in an audio buffer. Types implementing this are known as being sample apt.

Sample apt types have the following gurantees:

  • The type does not need to be dropped (by implementing Copy).
  • The type can safely be initialized with the all-zeros bit pattern.

Safety

Implementor must make sure that a bit-pattern of all-zeros is a legal bit-pattern for the implemented type.

Required Associated Constants§

The zero pattern for the sample.

Implementations on Foreign Types§

The bit-pattern of all zeros is a legal bit-pattern for floats.

See for example: https://doc.rust-lang.org/std/primitive.f32.html#method.to_bits.

Proof:

use audio::Sample;

assert_eq!((f64::ZERO).to_bits(), 0u64);

The bit-pattern of all zeros is a legal bit-pattern for floats.

See for example: https://doc.rust-lang.org/std/primitive.f64.html#method.to_bits.

Proof:

use audio::Sample;

assert_eq!((f64::ZERO).to_bits(), 0u64);

Implementors§