Fpath_sexp0.Absolute_path
The type of absolute paths.
Note: Some versions of odoc may display this as type t = Fpath.t
, but the actual definition is: type t = private Fpath.t
, which enforces the following invariants:
"/"
)Fpath.normalize
, so all ".."
segments are resolvedval sexp_of_t : t -> Sexplib0.Sexp.t
val hash : t -> int
val seeded_hash : int -> t -> int
val to_fpath : t -> Fpath.t
val to_string : t -> string
val of_fpath : Fpath.t -> t option
of_fpath p
returns p
normalized via Fpath.normalize
and classified as an absolute path. Returns None
if p
is not an absolute path.
val of_string : string -> (t, [ `Msg of string ]) Stdlib.Result.t
This is a convenient wrapper to compose Fpath.of_string
and of_fpath
.
val v : string -> t
v str
returns a t
or raises Invalid_argument
.
val root : t
The root path "/"
.
append abs rel
appends relative path rel
to absolute path abs
and normalizes the result via Fpath.normalize
.
The result is guaranteed to stay at or below abs
in the directory tree, since relative_path
values cannot escape upward.
val extend : t -> Fsegment.t -> t
extend abs seg
appends filesystem segment seg
to absolute path abs
and normalizes the result via Fpath.normalize
.
chop_prefix t ~prefix
removes prefix prefix
from path t
. Returns Some result
where result
is t
with prefix
removed, or None
if prefix
is not actually a prefix of t
.
When t
equals prefix
, returns Some empty
where empty
is the empty relative path "./"
.
chop_suffix t ~suffix
removes suffix suffix
from path t
.
Returns Some result
where result
is t
with suffix
removed, or None
if suffix
is not actually a suffix of t
. When suffix
is the empty relative path "./"
, returns Some t
unchanged.
When a non-empty suffix is successfully removed, the result is a directory path.
val is_dir_path : t -> bool