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>
44 lines
1.1 KiB
Plaintext
44 lines
1.1 KiB
Plaintext
!include ..\..\project.unittest.inc
|
|
|
|
# -------------------------------------
|
|
# Program Information
|
|
# -------------------------------------
|
|
|
|
TARGETNAME = Microsoft.Terminal.Til.UnitTests
|
|
TARGETTYPE = DYNLINK
|
|
DLLDEF =
|
|
|
|
# -------------------------------------
|
|
# Sources, Headers, and Libraries
|
|
# -------------------------------------
|
|
|
|
SOURCES = \
|
|
$(SOURCES) \
|
|
BaseTests.cpp \
|
|
BitmapTests.cpp \
|
|
ColorTests.cpp \
|
|
OperatorTests.cpp \
|
|
PointTests.cpp \
|
|
MathTests.cpp \
|
|
RectangleTests.cpp \
|
|
RunLengthEncodingTests.cpp \
|
|
SizeTests.cpp \
|
|
SomeTests.cpp \
|
|
u8u16convertTests.cpp \
|
|
DefaultResource.rc \
|
|
|
|
INCLUDES = \
|
|
.. \
|
|
$(INCLUDES) \
|
|
|
|
TARGETLIBS = \
|
|
$(TARGETLIBS) \
|
|
|
|
# -------------------------------------
|
|
# Localization
|
|
# -------------------------------------
|
|
|
|
# Autogenerated. Sets file name for Device Guard whitelisting effort, used in RC.exe.
|
|
C_DEFINES = $(C_DEFINES) -D___TARGETNAME="""$(TARGETNAME).$(TARGETTYPE)"""
|
|
MUI_VERIFY_NO_LOC_RESOURCE = 1
|