Module Cobj.Index
Compilation object indexes.
Indexes
val empty : t
The type for empty indexes.
val of_cobjs : ?init:t -> cobj list -> t
of_cobjs ~init cobjs
is an index made ofinit
(defaults toempty
) andcobjs
.
val cobjs_by_name : t -> cobj list Omod.Private.String.Map.t
cobjs_by_name i
are the module names ofi
and the compilation objects they map to.
val cobjs_by_digest : t -> cobj list Digest.Map.t
cobjs_by_digest i
are the interface digests ofi
and the compilation objects they map to.
val cobjs_by_pkg_name : t -> cobj list Omod.Private.String.Map.t
cobjs_by_pkg_name i
are the package names ofi
and the compilation objects they map to.
val cobjs_for_mod_name : string -> t -> cobj list
cobjs_for_mod_name n i
are the compilation objects ofi
whose module name matchesn
.
val cobjs_for_iface_digest : Digest.t -> t -> cobj list
cobjs_for_iface_digest d i
are the compilation objects ofi
whose interface digest matchesd
.
val cobjs_for_pkg_name : string -> t -> cobj list
cobjs_for_pkg_name n i
are the compilation objects ofi
whose package name matchesn
.
val cobjs_for_dep : dep -> t -> cobj list
cobjs_for_iface_digest dep i
are the compilation objects ofi
which satisfy dependencydep
.
val cobjs_for_dep_res : variants:Omod.Private.String.Set.t -> sat:(cobj -> bool) -> kind:kind -> dep -> t -> cobj list
cobjs_for_dep_res ~variants ~sat ~kind dep i
resolvesdep
ini
to asat
satisfying compilation object of kindkind
with the following twists:- If no
kind
can be found but aCmi
exists the latter is returned, assuming an mli-only module. - If an object is available both as a standalone compilation object and in an archive, only resolutions that mention the archive are returned.
- If an object is available in multiple variants and
variants
is notString
.Set.empty then variants that do not belong tovariants
are dropped.
- If no