Skip to main content

Module run_undo

Module run_undo 

Expand description

Undoing an instruction that spanned more than one application.

runs records what the instruction did; revert undoes one such reference inside one document. This is the piece between them: coordination and reporting which steps were completed.

A run undone while one of its apps is closed leaves a report that no longer mentions a photo and a photo that is still cropped — and from inside either app that looks finished. So any unreachable step refuses the whole run (unreachable_steps, then refuse_run), nothing is written, and the refusal names the affected apps.

The one partial allowed is within a step, where slots somebody edited after the run are kept rather than overwritten. It is never silent: RunUndoReport::is_complete is false whenever any step carries one.

Structs§

RunUndoReport
What a whole-run undo did, across every application it touched.
StepOutcome
One application’s outcome within a run undo.

Enums§

StepState
What happened to one application’s share of a run.

Functions§

refuse_run
Build the report for a run that was refused whole. Nothing was written.
undo_run
Undo every step of a run, given the documents the caller could open.
undo_step
Undo one application’s share of a run against the document that app owns.
unreachable_steps
Steps whose documents this process cannot reach.