pub async fn read_msg<R: AsyncReadExt + Unpin, T: for<'de> Deserialize<'de>>( reader: &mut R, ) -> Result<T>