#[cfg(test)]
pub(crate) mod mock;
#[cfg(feature = "symphonia")]
pub(crate) mod symphonia;
use crate::frame::Frame;
pub trait Decoder: Send {
type Error;
#[must_use]
fn sample_rate(&self) -> u32;
#[must_use]
fn num_frames(&self) -> usize;
fn decode(&mut self) -> Result<Vec<Frame>, Self::Error>;
fn seek(&mut self, index: usize) -> Result<SeekedToIndex, Self::Error>;
}
type SeekedToIndex = usize;