Skip to main content

Module progress

Module progress 

Source
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§

HumanProgress
Human-readable progress reporter — one line per event to stderr.
JsonProgress
JSON progress reporter — one compact JSON object per event to stderr.

Traits§

ProgressReporter
Reports dump progress events to stderr (or any injected Write sink).