We are digging into uart buffer overflow handling for esp_hal. But I have failed to understand the expected semantics for error recovery. E.g. if there is an overflow error, I would expect read to ensure that there would not be any "holes" in the byte sequence I receive up until I get an error response from read(). But, then what is the embedded_hal semantic to clear this error and continue reading? Could I expect that, once I got the error back from the uart read() operation, the uart device driver would resolve the situation by e.g. clearing the uart buffer, allowing the next read() to hopefully succeed if executed in time? Or is the semantics for the recovery handled case by case for different devices/drivers?