package lsp

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Digests (MD5)

type t
include Comparable_intf.S with type key := t
module Map : sig ... end
module Set : sig ... end
val to_dyn : t -> Dyn.t
val hash : t -> int
val equal : t -> t -> bool
val compare : t -> t -> Ordering.t
val to_string : t -> string
val from_hex : string -> t option
val file : Path.t -> t
val string : string -> t
val to_string_raw : t -> string
val generic : 'a -> t
module Stats_for_digest : sig ... end

The subset of fields of Unix.stats used by this module.

module Path_digest_result : sig ... end
val path_with_stats : allow_dirs:bool -> Path.t -> Stats_for_digest.t -> Path_digest_result.t

Digest a path taking into account its Stats_for_digest.

  • If it's a regular file, the resulting digest includes the file's content as well as the its executable permissions bit.
  • If it's a directory and allow_dirs = true, the function computes the digest of Stats_for_digest (except for the st_kind field since it's known to be S_DIR in this case). This is a poor approach to computing directory digests and we are planning to get rid of it soon.
  • Otherwise, the function returns Unexpected_kind.

Note that this interface is prone to races: the provided Stats_for_digest may get stale, so path_with_stats may return Unix_error (ENOENT, _, _) even though you've just successfully run Path.stat on it. The call sites are expected to gracefully handle such races.

val file_with_executable_bit : executable:bool -> Path.t -> t

Digest a file taking the executable bit into account. Should not be called on a directory.

val override_impl : file:(string -> t) -> string:(string -> t) -> unit

Override the implementations of digest computation. Can be used to record the reverse digest map.

module Direct_impl : sig ... end

Direct_impl does a plain hashing, with no heed to the overrides given by override_impl.