use std::io::Write;
use crate::Error;
pub trait IdHeader {
fn try_parse(data: &[u8]) -> Result<Option<Self>, Error>
where
Self: Sized;
fn num_output_channels(&self) -> usize;
fn input_sample_rate(&self) -> Option<usize>;
fn output_sample_rate(&self) -> usize;
fn serialize_into<W: Write>(&self, writer: &mut W) -> Result<(), Error>;
fn into_vec(self) -> Vec<u8>;
fn preskip_samples(&self) -> usize;
}