Expand description
Progress reporter layer — stderr progress lines during a dump run.
ProgressReporter is a separate trait from Renderer because:
- The renderer owns a single stdout sink; progress events belong on stderr.
- Two impls (Human, JSON) vs five renderers keeps it right-sized — stderr is non-data output so prose/lines/csv/tsv all share the human reporter.
- Isolates the novel “multi-line polling progress to stderr” concern from the renderer’s stdout concerns (endorsed in the Step 6 rationale, ADR-0008).
Returning Result is intentional: stderr writes can fail (e.g. the other
end of a pipe closed unexpectedly). The action treats a stderr-write failure
as fatal, consistent with the renderer’s own Write calls.
Structs§
- Human
Progress - Human-readable progress reporter — one line per event to stderr.
- Json
Progress - JSON progress reporter — one compact JSON object per event to stderr.
Traits§
- Progress
Reporter - Reports dump progress events to stderr (or any injected
Writesink).