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
/// Where a column's first byte sits within its physical line.
///
/// Most DCT columns have an [`Absolute`](Self::Absolute) anchor —
/// either declared via `_column(#)` or accumulated through a chain
/// of fixed-width reads back to a `_column(#)` (or `_newline`)
/// anchor. Those slice directly: `&line[o..]`.
///
/// The [`RelativeToCursor`](Self::RelativeToCursor) variant only
/// arises when a free-format read (`%f`, `%g`, `%e`, `%s` with no
/// width) sits between this column and the previous absolute anchor
/// on the same physical line. A free-format read consumes input
/// dynamically — the parser can't statically know where it ends —
/// so this column's start position has to be resolved at runtime by
/// re-simulating the predecessor reads against the actual line bytes.
///
/// The reader handles that resolution transparently. Consumers that
/// just want to read records via `read_record` / `read_lazy_record`
/// don't need to do anything special; this enum surfaces the
/// distinction for callers who want to inspect the schema directly.