pub trait StreamWriter {
fn write_all(&mut self, bytes: &[u8]) -> impl Future<Output = crate::Result<()>>;
fn write_all_vectored(&mut self, bytes: &[&[u8]]) -> impl Future<Output = crate::Result<()>>;
}
impl<T> StreamWriter for &mut T
where
T: StreamWriter,
{
#[inline]
async fn write_all(&mut self, bytes: &[u8]) -> crate::Result<()> {
(**self).write_all(bytes).await
}
#[inline]
async fn write_all_vectored(&mut self, bytes: &[&[u8]]) -> crate::Result<()> {
(**self).write_all_vectored(bytes).await
}
}
impl StreamWriter for () {
#[inline]
async fn write_all(&mut self, _: &[u8]) -> crate::Result<()> {
Ok(())
}
#[inline]
async fn write_all_vectored(&mut self, _: &[&[u8]]) -> crate::Result<()> {
Ok(())
}
}