| commit | df4257d510190bbefa7b71f22af51165beeb3efe | [log] [tgz] |
|---|---|---|
| author | Marcin Kowalczyk <qrczak@google.com> | Wed Dec 10 19:41:12 2025 +0100 |
| committer | qrczak <qrczak@google.com> | Wed Dec 10 19:45:55 2025 +0100 |
| tree | d7146594a4b1d6048cf9d8040b403e165074c496 | |
| parent | 018c91c6f545d4d6bec74c8a8e3ed5dfd27e1a3e [diff] |
Reduce code duplication in field handlers by having more templates, and simplify the types somewhat. Remove a separate layer of naming of field handler types, i.e. aliases to lower level handlers. At the same time, parameterize the field handler types by the value type, together with varnint kind for varint fields, rather than a trait struct. Spelling the types is very rare anyway, and this makes it easier to treat them generically, including future code. This also reduces the amount of exported names. For parameters holding the undecoded representation of a field value for a particular wire type (`uint64_t` for varint, `uint32_t` for fixed32 etc.), prefer the name `repr` to `value`. Let `value` mean the decoded value. Do not inline implementations of decoding packed fields. PiperOrigin-RevId: 842788195
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.
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.