pub async fn read_one_packet_as_framed<S, D>(
    io: S
) -> Result<(S, D), NetworkError>
where S: AsyncRead + Unpin, D: DeserializeOwned + Serialize,