This commit fixes a bug that is present in the implementation of ByteReader::read_slice for ReadAdapter. Specifically, it does not consume any input, so calling read_slice and then attempting to read the next value in the input, will read the same bytes again. The documented behavior of this function is that any of the read_* methods consume the corresponding amount of input.
To catch this, and to prevent future regressions, a new test was added that serializes some data to a file using one approach, and deserializes it using the ReadAdapter. This ensures that we don't accidentally make choices in the writer that aren't matched by the reader, and vice versa.
This commit fixes a bug that is present in the implementation of
ByteReader::read_slice
for ReadAdapter. Specifically, it does not consume any input, so callingread_slice
and then attempting to read the next value in the input, will read the same bytes again. The documented behavior of this function is that any of theread_*
methods consume the corresponding amount of input.To catch this, and to prevent future regressions, a new test was added that serializes some data to a file using one approach, and deserializes it using the ReadAdapter. This ensures that we don't accidentally make choices in the writer that aren't matched by the reader, and vice versa.
Closes #308