use std::{
error::Error,
io::{Read, Seek, Write}
};
use crate::vorbis::optimizer::VorbisOptimizerSettings;
pub mod ogg_to_ogg;
pub trait Remuxer {
type RemuxError: Error;
type RemuxerSettings;
fn new(
remuxer_settings: Self::RemuxerSettings,
optimizer_settings: VorbisOptimizerSettings
) -> Self
where
Self: Sized;
fn new_with_defaults() -> Self
where
Self: Sized,
Self::RemuxerSettings: Default
{
Self::new(
Self::RemuxerSettings::default(),
VorbisOptimizerSettings::default()
)
}
fn remux<R: Read + Seek, W: Write>(&self, source: R, sink: W) -> Result<W, Self::RemuxError>;
}