Remove 'values' from change notification interfaces
The original thinking behind including an array of changed 'values' was that we would just pass these through from the op performing the insert/remove/set (i.e., it would be convenient & zero-alloc.)
In practice, I'm not finding it useful as we scale up and recalculation is increasingly done in batches / lazily as the consumer pulls.
It's also becoming increasingly rare that we happen to have a 'values' array handy. It's usually convenient to set vector items / matrix cells point-wise (i.e., using setCell vs. setCells) vs. creating an array to set multiple values simulateously.
Also, as we look at scaling up, it's likely that remote ops will no longer carry the values.
Rename IReader.read() -> IReader.get*()
Two changes:
Renamed 'read()' -> 'get()' to align with Map
Added 'Item' and 'Cell' suffixes so that IReader/IVectorReader/IMatrixReader can all be implemented by the same object.
Use count/start suffixes when specifying intervals / 2D regions
Minor Intellisense improvement (typing .row will show '.rowCount', '.rowStart', etc.)
Remove 'values' from change notification interfaces
The original thinking behind including an array of changed 'values' was that we would just pass these through from the op performing the insert/remove/set (i.e., it would be convenient & zero-alloc.)
In practice, I'm not finding it useful as we scale up and recalculation is increasingly done in batches / lazily as the consumer pulls.
It's also becoming increasingly rare that we happen to have a 'values' array handy. It's usually convenient to set vector items / matrix cells point-wise (i.e., using setCell vs. setCells) vs. creating an array to set multiple values simulateously.
Also, as we look at scaling up, it's likely that remote ops will no longer carry the values.
Rename IReader.read() -> IReader.get*()
Two changes:
Use count/start suffixes when specifying intervals / 2D regions
Minor Intellisense improvement (typing .row will show '.rowCount', '.rowStart', etc.)