pub struct Resolved {
pub oid: Vec<u8>,
pub offset: u64,
pub len: u64,
pub stored_type: ObjType,
pub kind: GitObjectKind,
pub uncompressed_size: u64,
pub delta_base: u64,
}Expand description
One resolved object: exactly what the objects table stores, and no
payload.
It carried an Option<Vec<u8>> payload until 2026-08-11, for a reader that
stopped existing when §14’s exploded table became the fold’s input. Every
production caller uses index_entry and nothing else —
absorb_one builds index rows, and the one other caller discards the vector
entirely and reads its sink. Content has one home now
(PayloadSink, LAW 5) and this struct is the row, so a 343 MB pack’s rows
cost the length of the pack’s entry list rather than the length of its
history.
Fields§
§oid: Vec<u8>§offset: u64Byte extent of the stored, verbatim entry.
len: u64§stored_type: ObjTypeThe type the entry carries in the pack — which for a delta is
OfsDelta / RefDelta, exactly as .idx cannot tell you and this index
exists to record.
kind: GitObjectKindThe type the chain resolves to. Always one of the four real git types.
uncompressed_size: u64Inflated, post-delta-resolution size — the fact .idx and .rev
together still cannot answer.
delta_base: u64The objects.delta_base column: an archive offset, 0 for none.
Implementations§
Source§impl Resolved
impl Resolved
Sourcepub fn index_entry(&self) -> IndexEntry
pub fn index_entry(&self) -> IndexEntry
The row crate::read_stack::ObjectReadStack::append takes.
delta_base now has a column of its own in IndexEntry and rides
across in it — it was carried on this struct alone until that column
existed, and was deliberately never smuggled into uncompressed_size or
any other field on the way. This is the only place it is written into
an index row (LAW 5): resolve_walked computes it once, in the
archive’s coordinate space, and nothing downstream recomputes it from the
walk.