type t
Path.t can be thought of as `abs of string list | `rel of string list
with absolute paths `abs l
referring to the unix path reachable by
following path compoments in l
starting from the root ("/")
and `rel l
referring to the path relative to the jenga root.
Character '/' is disallowed in path components. Path components "" and "." and ".." are disallowed and if used are simplified out.
include Core.Comparable.S with type t := t
include Core_kernel__.Comparable_intf.S_common
include Base.Comparable_intf.S
include Base.Comparable_intf.Polymorphic_compare
ascending
is identical to compare
. descending x y = ascending y x
. These are
intended to be mnemonic when used like List.sort ~cmp:ascending
and List.sort
~cmp:descending
, since they cause the list to be sorted in ascending or descending
order, respectively.
clamp_exn t ~min ~max
returns t'
, the closest value to t
such that
between t' ~low:min ~high:max
is true.
Raises if not (min <= max)
.
val clamp : t ‑> min:t ‑> max:t ‑> t Base.Or_error.t
include Base.Comparator.S with type t := t
val comparator : (t, comparator_witness) Base.Comparator.comparator
include Base.Comparable_intf.Validate with type t := t
val validate_lbound : min:t Base.Maybe_bound.t ‑> t Base.Validate.check
val validate_ubound : max:t Base.Maybe_bound.t ‑> t Base.Validate.check
val validate_bound : min:t Base.Maybe_bound.t ‑> max:t Base.Maybe_bound.t ‑> t Base.Validate.check
module Replace_polymorphic_compare : Core_kernel__.Comparable_intf.Polymorphic_compare with type t := t
module Map : Core_kernel.Map.S with type Key.t = t with type Key.comparator_witness = comparator_witness
module Set : Core_kernel.Set.S with type Elt.t = t with type Elt.comparator_witness = comparator_witness
include Core.Hashable.S with type t := t
include Core.Hashable.Common
include sig ... end
val compare : t ‑> t ‑> Core_kernel__.Import.int
val hash_fold_t : Base.Hash.state ‑> t ‑> Base.Hash.state
val hash : t ‑> Base.Hash.hash_value
val hashable : t Core_kernel.Hashtbl.Hashable.t
module Table : Core_kernel.Hashtbl.S with type key = t
module Hash_set : Core_kernel.Hash_set.S with type elt = t
module Hash_queue : Core_kernel.Hash_queue.S with type Key.t = t
val absolute : string ‑> t
an absolute path made from a /-separated path string. the string must start with a '/'
val to_string : t ‑> string
if relative, displayed as repo-root-relative string.
relative_or_absolute ~dir:the_root (to_string t) = t
x = reach_from ~dir t
is such that relative_or_absolute ~dir x = t
,
x starts with a "." or a '/', and x is otherwise as short as possible
val to_absolute_string : t ‑> string
returns absolute path string, even if the path is relative. depends on jenga repo location.