use async_trait::async_trait;
use futures::io::AsyncWrite;
use crate::error::Result;
#[async_trait]
pub(crate) trait AsyncLittleEndianWrite: Unpin + futures::io::AsyncWriteExt {
async fn write_i32(&mut self, n: i32) -> Result<()> {
self.write(&n.to_le_bytes()).await?;
Ok(())
}
async fn write_u32(&mut self, n: u32) -> Result<()> {
self.write(&n.to_le_bytes()).await?;
Ok(())
}
async fn write_u8(&mut self, n: u8) -> Result<()> {
self.write(&[n]).await?;
Ok(())
}
}
impl<W: AsyncWrite + ?Sized + Unpin> AsyncLittleEndianWrite for W {}