Skip to main content

resolve_walked

Function resolve_walked 

Source
pub fn resolve_walked(
    pack: &[u8],
    w: &PackWalk,
    hash: GitHashKind,
    archive_offset: u64,
    bases: &dyn BaseSource,
    sink: &dyn PayloadSink,
) -> Result<Vec<Resolved>>
Expand description

Same, for a caller that already walked the pack (put does, for the closure check) and must not walk it twice — and for the one that wants the payloads.

sink is handed every object exactly once, in resolution order, with the payload its chain resolves to. Pass NoSink to keep nothing. This is the one pass §14’s exploded table is built from: no second walk, no second inflate, no second resolver (LAW 5).

Rows come back in entry order. Unbounded bases (the old behaviour): a caller that wants the ceiling, the watchdog and streaming rows is the indexer, and it uses resolve_streaming.