Rename `ParentState` to `Associated`. The name `State` suggested something more mutable than `Context`, while in reality the data are const where `Context` is mutable. Store `Associated` inside the `FieldHandlerMap` instead of using tuples with `FieldHandlerMap` as the first element. This simplifies usages when the toplevel `FieldHandlerMap` also includes associated data, which is usually the case. Make `Associated` a single type instead of a variadic sequence of types. They are accessed with the `associated()` getter, which returns a single value. A parent action no longer receives extra parameters. Change the syntax of specifying `Associated` from `FieldHandlerMap<Associated, Context...>` to `FieldHandlerMap<Context...>::With<Associated>`. Add `submessages()` to traverse the tree of parent submessage handlers. Add `empty()` to check if no field handlers have been registered. PiperOrigin-RevId: 832607624
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.