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
open Types.PathPermission
let as_permission permission =
match permission with
| Read -> "r"
| Write -> "w"
| Execute -> "x"
| CreateAndRemove -> "c"
;;
let%test _ = as_permission Read = "r"
let%test _ = as_permission Write = "w"
let%test _ = as_permission Execute = "x"
let%test _ = as_permission CreateAndRemove = "c"
let as_permissions permissions =
ListLabels.map ~f:as_permission permissions |> StringLabels.concat ~sep:""
;;
let%test _ = as_permissions [] |> String.equal ""
let%test _ = as_permissions [ Read ] |> String.equal "r"
let%test _ = as_permissions [ Read; Execute ] |> String.equal "rx"
let%test _ =
as_permissions [ Read; Write; Execute; CreateAndRemove ] |> String.equal "rwxc"
;;