Skip to main content

Sample

Trait Sample 

Source
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§

Source

const ZERO: Self

The zero pattern for the sample.

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 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§

const ZERO: Self = 0.0

Source§

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);
Source§

const ZERO: Self = 0.0

Source§

impl Sample for i8

Source§

const ZERO: Self = 0

Source§

impl Sample for i16

Source§

const ZERO: Self = 0

Source§

impl Sample for i32

Source§

const ZERO: Self = 0

Source§

impl Sample for i64

Source§

const ZERO: Self = 0

Source§

impl Sample for i128

Source§

const ZERO: Self = 0

Source§

impl Sample for isize

Source§

const ZERO: Self = 0

Source§

impl Sample for u8

Source§

const ZERO: Self = 0

Source§

impl Sample for u16

Source§

const ZERO: Self = 0

Source§

impl Sample for u32

Source§

const ZERO: Self = 0

Source§

impl Sample for u64

Source§

const ZERO: Self = 0

Source§

impl Sample for u128

Source§

const ZERO: Self = 0

Source§

impl Sample for usize

Source§

const ZERO: Self = 0

Source§

impl<const N: usize> Sample for [u8; N]

Source§

const ZERO: Self

Implementors§