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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//! The boxed job handle a claim returns (ADR-019 §3; ADR-010 §2).
//!
//! One-shot/repeatable split, deliberate — do not "fix" it at
//! implementation: `ack`/`retry`/`fail` consume the handle
//! (`self: Box<Self>` — each is a terminal transition of the claim);
//! `heartbeat` takes `&self` and is repeatable (renewal is inherently
//! repeated within one claim).
use crateResult;
use crateBoxedFuture;
use crateJob;
/// The claim handle: the row value plus its ops.
///
/// # The uniform validity predicate
///
/// Every op succeeds only while the row is `processing` **and** the
/// caller's claim deadline is unexpired (ADR-010 §2) — deadline lapse
/// refuses all ops (heartbeats, acks included) and a reclaim does
/// too. `false`, not an error: the dual-execution window's worker may
/// still complete its work, but its op will not land — at-least-once,
/// as documented.