1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//! Cassandra 5.0 **CommitLog segment** reader (issue #2389).
//!
//! A second on-disk Cassandra format CQLite reads, alongside SSTables. This
//! module parses a raw `CommitLog-<version>-<id>.log` segment — the file
//! Cassandra itself writes via `CommitLogSegment`/`CommitLogDescriptor` — into a
//! stream of decoded mutations, matching the semantics of Cassandra's own
//! `CommitLogReader`/`CommitLogReplayer` (CRC-validated per-record framing,
//! sync-marker-delimited sections, `tolerateTruncation` on a torn tail).
//!
//! This is a sibling of [`crate::storage::sstable`] and
//! [`crate::storage::write_engine`], deliberately **not** nested under either
//! (design decision D1): it is neither an SSTable component nor CQLite's own
//! write-ahead log (`write_engine::wal`, an unrelated CQLite-native format).
//!
//! ## Scope (v1)
//! - Uncompressed segments only; a compressed/encrypted segment fails closed
//! with a typed error rather than being misdecoded (design decision D3).
//! - Cassandra 5.0-era descriptor version 7 (`VERSION_40`) only, version-gated
//! the same way [`crate::storage::sstable::version_gate`] gates SSTables.
//! - Streaming decode — no whole-segment mutation materialization (D4).
//!
//! ## Layout
//! - [`descriptor`] — `CommitLogDescriptor` header + `CommitLogVersionGates`.
//! - [`frame`] — sync markers + per-record CRC framing + truncation tolerance.
//! - [`mutation`] — decoded mutation representation + the mutation-body decoder.
//! - [`schema`] — minimal per-table schema for schema-aware value decode.
//! - [`reader`] — [`CommitLogReader`], the streaming public entry point.
pub use ;
pub use ;
pub use ;
pub use ;