use audio_core::{Buf, BufMut, ReadBuf, Translate, WriteBuf};
pub fn copy_remaining<I, O>(mut from: I, mut to: O)
where
I: ReadBuf + Buf,
O: WriteBuf + BufMut<Sample = I::Sample>,
I::Sample: Copy,
{
let len = usize::min(from.remaining(), to.remaining_mut());
crate::buf::copy(&from, &mut to);
from.advance(len);
to.advance_mut(len);
}
pub fn translate_remaining<I, O>(mut from: I, mut to: O)
where
I: ReadBuf + Buf,
O: WriteBuf + BufMut,
O::Sample: Translate<I::Sample>,
I::Sample: Copy,
{
let len = usize::min(from.remaining(), to.remaining_mut());
crate::buf::translate(&from, &mut to);
from.advance(len);
to.advance_mut(len);
}