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
/// #398: the `recorded_at` a projector should stamp on a row — the
/// JetStream **publish timestamp** of the message being projected
/// ("the time that this message was received by the server from its
/// publisher"), not `Utc::now()` at projection time. Publish time is
/// a property of the message, so re-projecting after a `-WipeDb`
/// (#389) reproduces the exact same arrival times instead of
/// collapsing all replayed history onto the replay instant.
///
/// Falls back to `Utc::now()` when the ack metadata can't be parsed
/// (`msg.info()` errors on a malformed reply subject — shouldn't
/// happen for JetStream deliveries, but a timestamp must never be
/// the reason a row fails to project).
pub