pub async fn read_frame<R: AsyncRead + Unpin, T: for<'de> Deserialize<'de>>( reader: &mut R, ) -> Result<Option<T>>
Read a length-prefixed JSON frame from an async reader.
Returns None on clean EOF (connection closed).
None