Let reading varints not move the cursor on failure
instead of pointing the cursor past the failure.

This is analogous to strong exception safety.

While this does not matter for existing use cases, this is more useful
for reading from a growing source: when reading a varint fails, it can
be retried when the source grows.

The old way was the only thing possible before `Reader::Pull()` could
request `min_length > 1`, but now it can be done better.

PiperOrigin-RevId: 277911840
1 file changed
tree: 9f7ae65bb8972d6a5f3a47ac61f684a2acd8b33e
  1. doc/
  2. python/
  3. riegeli/
  4. tf_dependency/
  5. third_party/
  6. .bazelrc
  7. configure
  8. CONTRIBUTING.md
  9. LICENSE
  10. MANIFEST.in
  11. README.md
  12. WORKSPACE
README.md

Riegeli

Riegeli/records is a file format for storing a sequence of string records, typically serialized protocol buffers. It supports dense compression, fast decoding, seeking, detection and optional skipping of data corruption, filtering of proto message fields for even faster decoding, and parallel encoding.

See documentation.

Status

Riegeli file format will only change in a backward compatible way (i.e. future readers will understand current files, but current readers might not understand files using future features).

Riegeli C++ API might change in incompatible ways.