"```fn consume(mut self, f:..." <- > Is this meant to be blocking? That seems like it would prevent the poll() from returning, no, don't block > but I'm not sure how to report no packet available return None in Device::receive.