aboutsummaryrefslogtreecommitdiff
path: root/clib/cPath.mli
diff options
context:
space:
mode:
Diffstat (limited to 'clib/cPath.mli')
-rw-r--r--clib/cPath.mli31
1 files changed, 31 insertions, 0 deletions
diff --git a/clib/cPath.mli b/clib/cPath.mli
new file mode 100644
index 0000000000..762279a218
--- /dev/null
+++ b/clib/cPath.mli
@@ -0,0 +1,31 @@
+(************************************************************************)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * Copyright INRIA, CNRS and contributors *)
+(* <O___,, * (see version control and CREDITS file for authors & dates) *)
+(* \VV/ **************************************************************)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
+(************************************************************************)
+
+(* This API is loosely inspired by [Stdune.Path], for now we keep it
+ minimal, but at some point we may extend it, see developer notes in
+ the implementation file. *)
+
+(* To be made opaque one day, for now we force users to go thru the
+ constructor *)
+type t = private string
+
+(** [make path_components] build a path from its components *)
+val make : string list -> t
+
+(** [relative path string] build a path relative to an existing one *)
+val relative : t -> string -> t
+
+(** [choose_existing paths] will return [Some f] for the first file
+ [f] in [paths] that exists, [None] otherwise. *)
+val choose_existing : t list -> t option
+
+(* We should gradually add some more functions to handle common dirs
+ here such the theories directories or share files. Abstracting it
+ here does allow to use system-specific functionalities *)