Dec.FpSourceFrom a stream, it is possible to infer information needed then to apply a second analyse to extract all objects of a the given PACK file. From Git, this pass appears when the client clone/fetch and the program counts how many objects the PACK file has.
$ git clone ...
remote: Enumerating objects: 105, done.
remote: Counting objects: 100% (105/105), done.
remote: Compressing objects: 100% (81/81), done.
remote: Total 305 (delta 41), reused 75 (delta 23), pack-reused 200
Receiving objects: 100% (305/305), 104.46 KiB | 0 bytes/s, done. # first passmodule Uid : sig ... endtype entry = {offset : int64;Absolute offset into the given PACK file.
*)kind : kind;Kind of the object.
*)size : weight;Length of the inflated object.
*)consumed : int;Length of the deflated object (as it is into the PACK file).
*)crc : optint;Check-sum of the entry (header plus the deflated object).
*)}Type of a PACK entry.
The type for decoders.
The type for input sources. With a `Manual source the client must provide input with src.