Module Git.Index_pack

Index pack implementation (serialization/unserialization).

module type LAZY = sig ... end

Interface which describes the lazy implementation of the decoder of an IDX file.

module Lazy : functor (Hash : sig ... end) -> LAZY with module Hash := Hash

The functor to make the lazy decoder of the IDX file. Internally, we use a Cstruct.t representation of the IDX file notified to the make function. This Cstruct.t should never change by the client. All processes available in this module read only the content.

module type DECODER = sig ... end

Interface which describes the implementation of the decoder of an IDX file.

module Decoder : functor (Hash : sig ... end) -> DECODER with module Hash := Hash

The functor to make the decoder module by a specific hash implementation. We constraint the Hash.S module to compute a Cstruct.t flow. This module is a non-blocking decoder with a pure state of the IDX file. It's better to use this module instead Lazy if the client wants an OCaml representation of the IDX file - he can construct this specific OCaml value step by step with this decoder like a Radix tree.

module type ENCODER = sig ... end

Interface which describes the implementation of the encoder of an IDX file.

module Encoder : functor (Hash : sig ... end) -> ENCODER with module Hash := Hash

The functor to make the encoder module by a specific hash implementation.