pub enum RepositoryFormat {
CurrentV6,
}Expand description
Repository format selected by the authoritative .prikk/FORMAT marker.
RFC 103 retired format 1; RFC 102 Stage 3 retired format 2 the same way, RFC 102 Stage 4 did the
same again for format 3, RFC 102 Stage 5 did it once more for format 4, and RFC 102 Stage 6 does it
again for format 5 – rejected at open (read_repository_format), not merely unsupported for
mutation, no variant naming it here. This bump was sought and decided by the owner explicitly
(design-v1.md §14.7, 2026-08-15) and Stage 6 follows the same precedent (design-v1.md §15.6):
Stage 6 Step 1 adds a B slot and a generation log for each of the three compacting containers, new
names durable_append’s strictness makes unsafe to leave undetected in an older repository. The
single remaining variant is kept as an enum rather than collapsed away, per design-v1.md §12.1’s
own note: require_current_format’s disk re-read is a real runtime check (RFC 103 Increment B was
abandoned specifically because of it), so the enum’s shape still carries meaning and is not free
to simplify away.
“Format 2”/“format 3”/“format 4”/“format 5”/“format 6” here name the on-disk repository layout
(loose objects/refs vs. RFC 102’s containers) – a different axis from DC-40’s “format-2” wire
schema (block_state.rs, state_root.rs, format.rs’s Block/Patch shape and Merkle rules),
which no RFC 102 stage touches and which keeps its own “format-2” name regardless of what this
enum’s current variant is called (design §8: “format-2’s rejection of the ahead-log state” is
explicitly unchanged).
Variants§
CurrentV6
Current format 6: RFC 102 Stage 6 Step 1’s generation-aware index containers (ref pointer index, received-ref index, trust policy container), layered on every prior stage’s container work, still writable under the unchanged DC-40 schema and state-root rules.
Trait Implementations§
Source§impl Clone for RepositoryFormat
impl Clone for RepositoryFormat
Source§fn clone(&self) -> RepositoryFormat
fn clone(&self) -> RepositoryFormat
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more