Module dasp_sample::conv

source ·
Expand description

Pure functions and traits for converting between i8, i16, I24, i32, I48, i64, u8, u16, U24, u32, U48, u64, f32 and f64.

Each conversion function is performance focused, memory-sensitive and expects that the user has validated their input prior to the function call.

No conversion function will ever cast to a type with a size in bytes larger than the largest between the source and target sample types.

The conversion functions do not check the range of incoming values for floating point values or any of the custom I24, U24, I48 and U48 types.

Note that floating point conversions use the range -1.0 <= v < 1.0: (1.0 as f64).to_sample::<i16>() will overflow!

Modules

Traits

  • Sample types which may be converted to and from some type S.
  • Similar to the std From trait, but specifically for converting between sample types.
  • Similar to the std Into trait, but specifically for converting between sample types.