Factor out `ArrowProxy`, a common implementation of `iterator::pointer` when
`iterator::reference` is not a true reference.

Move `ReferencePair` from `csv_record.h` to `iterable.h`. It is not specific for
`CsvRecord` but applicable to any map type with separate storage for keys and
values.

Minor changes to `{Linear,Chunked}SortedStringSet` iterators to satisfy C++20
requirements:

* Make `ChunkedSortedStringSet` an alias to an internal `IteratorImpl`
  instantiation instead of deriving from it. This makes return types correct.

* Let
  `{Linear,Chunked}SortedStringSet::NextInsertIterator::reference::operator=`
  be const (this is shallow), as required by `std::indirectly_writable`.

PiperOrigin-RevId: 883153178
8 files changed
tree: aa18613ca0fd6991fd6abdb2eae6849620422049
  1. doc/
  2. python/
  3. riegeli/
  4. tf_dependency/
  5. .bazelrc
  6. configure
  7. CONTRIBUTING.md
  8. LICENSE
  9. MANIFEST.in
  10. MODULE.bazel
  11. README.md
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.