src/transfer/PublicationPolicy.bend
1import Base
2
3# Names the visibility boundary reached before a durability failure.
4type Phase is Data:
5 BeforeRename{}
6 AfterRename{}
7
8# Distinguishes a definite failure from an uncertain published result.
9type Failure is Data:
10 KnownFailure{}
11 CommitUnknown{}
12
13# Classifies whether a publication failure leaves destination visibility uncertain.
14def failure(phase: Phase) -> Failure:
15 match phase:
16 case BeforeRename{}: KnownFailure{}
17 case AfterRename{}: CommitUnknown{}