In `SerializedMessage{,Backward}Writer`, rename `CopyString()` to
`WriteString()`, merging it with other overloads.
Add direct support for `CordIteratorSpan` in `WriteString()`. It is convertible
to `absl::Cord`, but the stringification mechanism does not find that.
Rationale: it is not that important to explicitly indicate whether reading is
destructive or not, especially since `ReaderSpan` is move-only. It is more
important to be able to treat `ReaderSpan`, `CordIteratorSpan`, and
`absl::string_view` uniformly.
PiperOrigin-RevId: 847835642
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.