Returns a `Result<Option<P>, Error>`, but the docs are a bit terse https://docs.rs/protocol/3.1.4/protocol/wire/stream/struct.Connection.html#method.receive_packet > Attempts to receive a packet * Is this a non-blocking call? * What does `Ok(None)` mean here? Is it an error? If this is non-blocking, does it mean try again later?