use tokio::io::{AsyncWrite, AsyncWriteExt};
pub async fn write_frame<W>(writer: &mut W, data: &[u8]) -> anyhow::Result<()>
where
W: AsyncWrite + Unpin, {
let len = (data.len() as u32).to_be_bytes();
writer.write_all(&len).await?; writer.write_all(data).await?; writer.flush().await?; Ok(()) }