a8e4bedae3
## Summary of the Pull Request Introduces `til::rle`, a vector-like container which stores elements of type T in a run length encoded format. This allows efficient compaction of repeated elements within the vector. ## References * #8000 - Supports buffer rewrite work. A re-use of `til::rle` will be useful as a column counter as we pursue NxM storage and presentation. * #3075 - The new iterators allow skipping forward by multiple units, which wasn't possible under `TextBuffer-/OutputCellIterator`. Additionally it also allows a bulk insertions. * #8787 and #410 - High probability this should be `pmr`-ified like `bitmap` for things like `chafa` and `cacafire` which are changing the run length frequently. ## PR Checklist * [x] Closes #8741 * [x] I work here. * [x] Tests added. * [x] Tests passed. ## Validation Steps Performed * [x] Ran `cacafire` in `OpenConsole.exe` and it looked beautiful * [x] Ran new suite of `RunLengthEncodingTests.cpp` Co-authored-by: Michael Niksa <miniksa@microsoft.com> |
||
---|---|---|
.. | ||
BaseTests.cpp | ||
BitmapTests.cpp | ||
CoalesceTests.cpp | ||
ColorTests.cpp | ||
DefaultResource.rc | ||
MathTests.cpp | ||
OperatorTests.cpp | ||
PointTests.cpp | ||
product.pbxproj | ||
RectangleTests.cpp | ||
ReplaceTests.cpp | ||
RunLengthEncodingTests.cpp | ||
SizeTests.cpp | ||
SomeTests.cpp | ||
sources | ||
SPSCTests.cpp | ||
StaticMapTests.cpp | ||
til.unit.tests.vcxproj | ||
til.unit.tests.vcxproj.filters | ||
u8u16convertTests.cpp | ||
VisualizeControlCodesTests.cpp |