terminal/src/host/ut_host
Leonard Hecker a8e4bedae3
Introduce til::rle - a run length encoded vector (#10099)
## 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>
2021-05-20 17:27:50 +00:00
..
AliasTests.cpp Change backslashes in include statements to forward slashes (#8205) 2020-11-25 21:02:10 +00:00
ApiRoutinesTests.cpp Eliminate more transient allocations: Titles and invalid rectangles and bitmap runs and utf8 conversions (#8621) 2021-02-16 20:52:33 +00:00
ClipboardTests.cpp Merged PR 5984262: [Git2Git] Merged PR 5982901: Reintroduce GetQuickCharWidth for numpad event synthesis 2021-04-27 23:17:53 +00:00
CodepointWidthDetectorTests.cpp Change backslashes in include statements to forward slashes (#8205) 2020-11-25 21:02:10 +00:00
CommandLineTests.cpp Change backslashes in include statements to forward slashes (#8205) 2020-11-25 21:02:10 +00:00
CommandListPopupTests.cpp Change backslashes in include statements to forward slashes (#8205) 2020-11-25 21:02:10 +00:00
CommandNumberPopupTests.cpp Change backslashes in include statements to forward slashes (#8205) 2020-11-25 21:02:10 +00:00
ConptyOutputTests.cpp Improve the propagation of color attributes over ConPTY (#6506) 2020-07-01 11:10:36 -07:00
ConsoleArgumentsTests.cpp Add -ForceNoHandoff for compatibility; stop handoff for double-click launches (#9802) 2021-04-15 16:54:04 +00:00
CopyFromCharPopupTests.cpp Change backslashes in include statements to forward slashes (#8205) 2020-11-25 21:02:10 +00:00
CopyToCharPopupTests.cpp Change backslashes in include statements to forward slashes (#8205) 2020-11-25 21:02:10 +00:00
DbcsTests.cpp Change backslashes in include statements to forward slashes (#8205) 2020-11-25 21:02:10 +00:00
DefaultResource.rc Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
HistoryTests.cpp Change backslashes in include statements to forward slashes (#8205) 2020-11-25 21:02:10 +00:00
Host.UnitTests.vcxproj Link to WinMM.Lib for PlaySound with 19041 (#9624) 2021-03-26 11:35:17 -05:00
Host.UnitTests.vcxproj.filters Introduce til::rle - a run length encoded vector (#10099) 2021-05-20 17:27:50 +00:00
InitTests.cpp Change backslashes in include statements to forward slashes (#8205) 2020-11-25 21:02:10 +00:00
InputBufferTests.cpp Change backslashes in include statements to forward slashes (#8205) 2020-11-25 21:02:10 +00:00
ObjectTests.cpp Change backslashes in include statements to forward slashes (#8205) 2020-11-25 21:02:10 +00:00
OutputCellIteratorTests.cpp Change backslashes in include statements to forward slashes (#8205) 2020-11-25 21:02:10 +00:00
PopupTestHelper.hpp Replace macros with constexpr part 2 (#3416) 2019-11-04 07:37:47 -06:00
product.pbxproj Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
ReadWaitTests.cpp Removed using namespace directive from header files (#955) 2019-05-30 11:14:21 -07:00
RendererTests.cpp Change backslashes in include statements to forward slashes (#8205) 2020-11-25 21:02:10 +00:00
ScreenBufferTests.cpp Revert "Prevent the virtual viewport bottom being moved up unintentionally (#9770)" 2021-04-28 12:45:09 -05:00
SearchTests.cpp Change backslashes in include statements to forward slashes (#8205) 2020-11-25 21:02:10 +00:00
SelectionTests.cpp Add support for double-width/double-height lines in conhost (#8664) 2021-02-18 05:44:50 +00:00
sources ROW: clean up in preparation to hide CharRow & AttrRow (#8446) 2021-01-20 21:16:56 +00:00
testmd.definition Integrate inbox changes up to 68d3b53286dd 2019-12-02 17:24:26 -08:00
TextBufferIteratorTests.cpp Change backslashes in include statements to forward slashes (#8205) 2020-11-25 21:02:10 +00:00
TextBufferTests.cpp Add support for double-width/double-height lines in conhost (#8664) 2021-02-18 05:44:50 +00:00
TitleTests.cpp Change backslashes in include statements to forward slashes (#8205) 2020-11-25 21:02:10 +00:00
Utf8ToWideCharParserTests.cpp Compensate for non-minimal UTF-8 encodings (#3380) 2019-10-31 10:50:34 -07:00
Utf16ParserTests.cpp add clang-format conf to the project, format the c++ code (#1141) 2019-06-11 13:27:09 -07:00
UtilsTests.cpp Change backslashes in include statements to forward slashes (#8205) 2020-11-25 21:02:10 +00:00
ViewportTests.cpp Change backslashes in include statements to forward slashes (#8205) 2020-11-25 21:02:10 +00:00
VtIoTests.cpp Eliminate more transient allocations: Titles and invalid rectangles and bitmap runs and utf8 conversions (#8621) 2021-02-16 20:52:33 +00:00
VtRendererTests.cpp Add support for the "doubly underlined" graphic rendition attribute (#7223) 2020-08-10 17:06:16 +00:00