Trait audio_core::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.

Object Safety§

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.

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 = 0f32

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 = 0f64

source§

impl Sample for i8

source§

const ZERO: Self = 0i8

source§

impl Sample for i16

source§

const ZERO: Self = 0i16

source§

impl Sample for i32

source§

const ZERO: Self = 0i32

source§

impl Sample for i64

source§

const ZERO: Self = 0i64

source§

impl Sample for i128

source§

const ZERO: Self = 0i128

source§

impl Sample for isize

source§

const ZERO: Self = 0isize

source§

impl Sample for u8

source§

const ZERO: Self = 0u8

source§

impl Sample for u16

source§

const ZERO: Self = 0u16

source§

impl Sample for u32

source§

const ZERO: Self = 0u32

source§

impl Sample for u64

source§

const ZERO: Self = 0u64

source§

impl Sample for u128

source§

const ZERO: Self = 0u128

source§

impl Sample for usize

source§

const ZERO: Self = 0usize

source§

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

source§

const ZERO: Self = _

Implementors§