When a ParserError occurs, the rust parser correctly advances the buffer:
https://github.com/swift-nav/libsbp/blob/master/rust/sbp/src/parser/mod.rs#L138
However, other error types (including a CRC error) do not advance the buffer. Subsequent calls to .parse() will parse the same data and continue to return the same error type. The buffer is still full, so read_more will not be called.