pub enum WalDelta {
CreateInode {
delta_index: u32,
inode_id: InodeId,
inode_kind: InodeKind,
},
BindDirentry {
delta_index: u32,
parent_inode_id: InodeId,
name_key: NameKey,
display_name: DisplayName,
child_inode_id: InodeId,
},
UnbindDirentry {
delta_index: u32,
parent_inode_id: InodeId,
name_key: NameKey,
display_name: DisplayName,
child_inode_id: InodeId,
bind_seq: ChangeSeq,
bind_delta_index: u32,
},
AppendFileRevision {
delta_index: u32,
inode_id: InodeId,
revision_no: RevisionNo,
content_ref: ContentRef,
},
TombstoneSubtree {
delta_index: u32,
root_inode_id: InodeId,
deleted_direntry: Option<DeletedDirentry>,
},
RevokeSubtreeTombstone {
delta_index: u32,
root_inode_id: InodeId,
target: TombstoneGeneration,
},
AppendAttributesRevision {
delta_index: u32,
inode_id: InodeId,
attributes_revision_no: AttributeRevisionNo,
attributes: Attributes,
},
}Expand description
Records one replayable metadata mutation materialized from a semantic commit operation.
Variants§
CreateInode
Introduces an inode whose identity and kind remain fixed for its lifetime.
Fields
BindDirentry
Makes a child reachable under one canonical name in a directory.
Fields
display_name: DisplayNameUser-facing spelling preserved independently of name_key.
UnbindDirentry
Removes one exact historical directory binding without affecting a later rebind.
Fields
display_name: DisplayNameUser-facing spelling the removed binding carried, so feed consumers see the name a person typed without a second lookup.
AppendFileRevision
Publishes the next immutable content revision of a file inode.
Fields
revision_no: RevisionNoMonotonic per-file revision number validated against visible history.
content_ref: ContentRefImmutable content that must already be durable before publication.
TombstoneSubtree
Hides a rooted subtree from snapshots at this delta’s sequence or later.
Fields
deleted_direntry: Option<DeletedDirentry>The binding a path delete removed, carried so the deleted name
survives on the immortal tombstone row after unbind rows age
out; null for a delete addressed by inode. Stated either way
and never defaulted, so the pre-grouping layout — which spelled
the binding as three optional delta fields — does not decode.
RevokeSubtreeTombstone
Revokes exactly one subtree tombstone — the one recorded at target
— making the subtree eligible for visibility again once re-bound. An
immutable compensating event, not an in-place row deletion: a later
TombstoneSubtree for the same root supersedes the revoke.
Fields
target: TombstoneGenerationThe exact tombstone generation this delta compensates.
AppendAttributesRevision
Publishes the next attribute revision of one inode, as complete state.
The delta carries the whole resulting map rather than the changes that produced it, so replay never needs an earlier revision to answer what an inode holds. An empty map is a real revision: it is the cleared state, and it hides every earlier map.
Fields
attributes_revision_no: AttributeRevisionNoMonotonic per-inode attribute revision, exactly one past the revision the update was validated against.
attributes: AttributesThe inode’s complete attribute map after this update.