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§
- RunUndo
Report - What a whole-run undo did, across every application it touched.
- Step
Outcome - One application’s outcome within a run undo.
Enums§
- Step
State - 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.