module Kind : sig ... end
This module represents the kind of a Git object - but only the kind, Kind.t
does not have the Git value.
module type H = sig ... end
This module is the serialiser of the list of hunks in the PACK entry when we retrieve a delta-ified Git object. This encoder is a non-blocking encoder used in the same time than the Deflater
- that means the content produced is always deflated.
module type ENTRY = sig ... end
The entry module. It used to able to manipulate the meta-data only needed by the delta-ification of the Git object (and avoid to de-serialize all of the Git object to compute the delta-ification).
module type DELTA = sig ... end
This module is the engine to delta-ify Git objects together. The current implementation is a stop the world process which can not compute iteratively the delta-ification for some Git objects.
module Delta : functor (Hash : sig ... end) -> functor (Entry : ENTRY with module Hash := Hash) -> DELTA with module Hash := Hash and module Entry := Entry
module type P = sig ... end
Interface which describes the encoder of the PACK file.
module Pack : functor (Hash : sig ... end) -> functor (Deflate : sig ... end) -> functor (Entry : ENTRY with module Hash := Hash) -> functor (Delta : DELTA with module Hash := Hash and module Entry := Entry) -> functor (Hunk : H with module Hash := Hash) -> P with module Hash := Hash and module Deflate := Deflate and module Entry := Entry and module Delta := Delta and module Hunk := Hunk
The functor to make the PACK encoder by a specific hash implementation and a specific deflate algorithm.