1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859open!Import(** A [Pack_store.S] is a closeable, persistent implementation of
{!Content_addressable.S} that uses an append-only file of variable-length
data blocks. The data file is indexed by hash via {!Pack_index.S}
implementation. *)moduletypeS=sigincludeContent_addressable.Stypeindexvalv:?fresh:bool->?readonly:bool->?lru_size:int->index:index->string->readtLwt.tvalsync:?on_generation_change:(unit->unit)->'at->unit(** syncs a readonly instance with the files on disk. The same file instance
is shared between several pack instances. Therefore only the first pack
instance that checks a generation change, can see it.
[on_generation_change] is a callback for all pack instances to react to a
generation change. *)valflush:?index:bool->?index_merge:bool->'at->unitvalversion:_t->Version.tvaloffset:'at->int63valclear_caches:'at->unit(** [clear_cache t] clears all the in-memory caches of [t]. Persistent data
are not removed. *)(** @inline *)includeS.Checkablewithtype'at:='atandtypekey:=keyendmoduletypeMaker=sigtypekeytypeindex(** Save multiple kind of values in the same pack file. Values will be
distinguished using [V.magic], so they have to all be different. *)moduleMake(V:Pack_value.Swithtypehash:=key):Swithtypekey=keyandtypevalue=V.tandtypeindex=indexendmoduletypeSigs=sigmoduletypeS=SmoduletypeMaker=MakermoduleMaker(V:Version.S)(Index:Pack_index.S)(K:Irmin.Hash.Swithtypet=Index.key):Makerwithtypekey=K.tandtypeindex=Index.tend