fixed_resample/
lib.rs

1pub mod interleave;
2
3#[cfg(feature = "resampler")]
4mod resampler;
5#[cfg(feature = "resampler")]
6mod resampler_type;
7
8#[cfg(feature = "resampler")]
9pub use resampler::*;
10#[cfg(feature = "resampler")]
11pub use resampler_type::*;
12
13#[cfg(feature = "channel")]
14mod channel;
15#[cfg(feature = "channel")]
16pub use channel::*;
17
18#[cfg(feature = "resampler")]
19pub use rubato;
20
21#[cfg(feature = "resampler")]
22pub use rubato::Sample;
23
24/// The trait governing a single sample.
25///
26/// There are two types which implements this trait so far:
27/// * [f32]
28/// * [f64]
29#[cfg(not(feature = "resampler"))]
30pub trait Sample
31where
32    Self: Copy + Send,
33{
34    fn zero() -> Self;
35}
36
37#[cfg(not(feature = "resampler"))]
38impl Sample for f32 {
39    fn zero() -> Self {
40        0.0
41    }
42}
43
44#[cfg(not(feature = "resampler"))]
45impl Sample for f64 {
46    fn zero() -> Self {
47        0.0
48    }
49}