Source file dune_section.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
type t =
| Lib
| Lib_root
| Libexec
| Libexec_root
| Bin
| Sbin
| Toplevel
| Share
| Share_root
| Etc
| Doc
| Stublibs
| Man
| Misc
let all =
[ (Lib, "lib")
; (Lib_root, "lib_root")
; (Libexec, "libexec")
; (Libexec_root, "libexec_root")
; (Bin, "bin")
; (Sbin, "sbin")
; (Toplevel, "toplevel")
; (Share, "share")
; (Share_root, "share_root")
; (Etc, "etc")
; (Doc, "doc")
; (Stublibs, "stublibs")
; (Man, "man")
; (Misc, "misc")
]
let to_string t = List.assoc t all
let rec of_string x = function
| [] -> None
| (s, x') :: xs ->
if x' = x then
Some s
else
of_string x xs
let of_string x = of_string x all