pub unsafe trait Sample: Copy {
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§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
Source§impl Sample for f32
The bit-pattern of all zeros is a legal bit-pattern for floats.
impl Sample for f32
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);
Source§impl Sample for f64
The bit-pattern of all zeros is a legal bit-pattern for floats.
impl Sample for f64
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);