From reading the code and some tests we have two options both of them doable:
- Leverage the usage of
DO_StoreUndo to generate snapshots of WDFUSE's memory objects instead of the current manual snapshot: Requires code analysis of when to perform this calls so every map function should store a snapshot, minimal code changes probably aside from a list of objects storing all the snapshots.
- Create a procedure that handles events and undos the latest event based on insertion/deletion/move/change: Requires code analysis and extra implementation, may be worth for REDO because it would save half the work.
I think the best idea is to do 1., the same way the UNDO is leveraged could be used to apply snaphots of undone events, after implementing this we could observe how limited this is and build features on top.
From reading the code and some tests we have two options both of them doable:
DO_StoreUndoto generate snapshots of WDFUSE's memory objects instead of the current manual snapshot: Requires code analysis of when to perform this calls so every map function should store a snapshot, minimal code changes probably aside from a list of objects storing all the snapshots.I think the best idea is to do 1., the same way the UNDO is leveraged could be used to apply snaphots of undone events, after implementing this we could observe how limited this is and build features on top.