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
//! [`CurrencyCheck`] — a currency state, and the date it was established on.
use ;
use CurrencyState;
/// What a status check found, and when it was made.
///
/// # This records the check, not the act
///
/// The distinction is the whole point of the type. Nothing here claims an act
/// *is* in force; it claims that on [`checked_on`](Self::checked_on) someone
/// looked and found it so. An act can be repealed the day after a check and
/// this record stays truthful — it is a dated observation, and a reader can see
/// how old it is.
///
/// A currency field on its own would decay silently: every entry would read as
/// current forever, and a check made two years ago would be indistinguishable
/// from one made this morning. The date is the half that keeps working.
///
/// # A struct rather than two fields on the act
///
/// The same reason [`ObligationDate`](crate::instrument::ObligationDate) is a
/// struct: a state cannot then exist without its date, and there is no second
/// optional field to fall out of step with the first. An act either carries a
/// dated check or carries nothing.
///
/// # Serialised flat
///
/// [`state`](Self::state) is flattened, so the wire form is one object rather
/// than a state nested inside a wrapper:
/// `{"state":"consolidated","asOf":"02023R1542-20260813","checkedOn":"2026-09-11"}`.