src/scan/Utf8CursorPolicy.bend
mylsm-lsm-store@0.6.0.1 · 31 lines · 4 definitions
1import Base
2
3
4type Failure is Data:
5 TextDecodeFailure{}
6 ReaderFailure{}
7 ResourceFailure{}
8 ArgumentFailure{}
9
10
11type FailureClass is Data:
12 TextFailure{}
13 StorageFailure{}
14 ResourceLimitFailure{}
15 InvalidArgumentFailure{}
16
17
18def classify(failure: Failure) -> FailureClass:
19 match failure:
20 case TextDecodeFailure{}: TextFailure{}
21 case ReaderFailure{}: StorageFailure{}
22 case ResourceFailure{}: ResourceLimitFailure{}
23 case ArgumentFailure{}: InvalidArgumentFailure{}
24
25
26def duplicate(failure: Failure) -> Failure & Failure:
27 match failure:
28 case TextDecodeFailure{}: (TextDecodeFailure{}, TextDecodeFailure{})
29 case ReaderFailure{}: (ReaderFailure{}, ReaderFailure{})
30 case ResourceFailure{}: (ResourceFailure{}, ResourceFailure{})
31 case ArgumentFailure{}: (ArgumentFailure{}, ArgumentFailure{})