Lumiera
0.pre.03
»edit your freedom«
|
#include "lib/diff/list-diff-detector.hpp"
A diff generation process is built on top of an "old" reference point and a "new" state of the underlying sequence.
Within this reference frame, an demand-driven evaluation of the differences is handed out to the client as an iterator. While consuming this evaluation process, both the old and the new version of the sequence will be traversed once. In case of re-orderings, a nested forward lookup similar to insertion sort will look for matches in the old sequence, rendering the whole evaluation quadratic in worst-case.
Definition at line 168 of file list-diff-detector.hpp.
Public Member Functions | |
DiffFrame (Idx ¤t, Idx &&refPoint) | |
bool | checkPoint () const |
void | iterNext () |
DiffStep & | yield () const |
Private Attributes | |
DiffStep | currentStep_ |
Idx * | new_ |
size_t | newHead_ =0 |
Idx | old_ |
size_t | oldHead_ =0 |
Static Private Attributes | |
static ListDiffLanguage< Val > | token |
allocate static storage for the diff language token builder functions | |