It is unclear how the UTransport::receive function handles situations where no message is (immediately) available on the given topic, i.e. when will the returned future be completed?
async fn receive(&self, topic: UUri) -> Result<UMessage, UStatus>;
FMPOV the function should accept an argument indicating for how long the client wants to wait, e.g. 0 = fail immediately if no message is available, and t > 0 = fail after t milliseconds without a being message available:
async fn receive(&self, topic: UUri, timeout: u16) -> Result<UMessage, UStatus>;
It is unclear how the
UTransport::receivefunction handles situations where no message is (immediately) available on the given topic, i.e. when will the returned future be completed?FMPOV the function should accept an argument indicating for how long the client wants to wait, e.g.
0= fail immediately if no message is available, andt > 0= fail after t milliseconds without a being message available: