src/CrashPoint.bend
mylsm-lsm-store@0.6.0.1 · 23 lines · 3 definitions
1import Base
2import mylsm-lsm-store@0.6.0.1/src/Console.bend as Console
3import mylsm-lsm-store@0.6.0.1/src/CrashPointPolicy.bend as Policy
4
5
6def stop(name: String) -> IO(Result<&1, &1, U32 & String, Unit>):
7 import "./effs/crash_point.c"
8 import "./effs/crash_point.js"
9
10
11def hit_decision(active: Bool, name: String) -> IO(Result<&1, &1, U32 & String, Unit>):
12 match active:
13 case True{}:
14 stop(name)
15 case False{}:
16 IO.pure(Result<&1, &1, U32 & String, Unit>, Done{Unit{}})
17
18
19
20def hit(+name: String) -> IO(Result<&1, &1, U32 & String, Unit>):
21 do IO<Result<&1, &1, U32 & String, Unit>>:
22 configured : String <- IO.try(String, Console.get_env("MYLSM_CRASH_POINT"))
23 hit_decision(Policy.enabled(configured, name), name)