src/FsPolicy.bend

mylsm-lsm-store@0.5.0.0 · 26 lines · 0 definitions

1import Base
2
3# Treats only a missing-path errno as absence.
4def missing_path_result(missing: Bool, +code: U32, message: String) -> Result<&1, &1, U32 & String, Bool>:
5  match missing:
6    case True{}:
7      Done{False{}}
8    case False{}:
9      Fail{(code, message)}
10
11# Ignores absent optional levels and preserves other errors.
12def optional_directory_result(
13  optional: Bool,
14  unavailable: Bool,
15  +code: U32,
16  message: String
17) -> Result<&1, &1, U32 & String, Unit>:
18  match optional:
19    case False{}:
20      Fail{(code, message)}
21    case True{}:
22      match unavailable:
23        case True{}:
24          Done{Unit{}}
25        case False{}:
26          Fail{(code, message)}