terminal/src/til/ut_til
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
..
BaseTests.cpp Fix the x86 build and re-enable x86 CI (#6467) 2020-06-11 17:04:42 +00:00
BitmapTests.cpp Merged PR 5676675: Reflect OS build fixes on top of ae8347f33 2021-02-11 18:19:33 +00:00
CoalesceTests.cpp Add support for per-profile tab colors (#7162) 2020-08-07 16:07:42 -07:00
ColorTests.cpp Switch the Cascadia projects to til::color where it's easily possible to do so (#5847) 2020-05-15 22:43:00 +00:00
DefaultResource.rc Introduce til::some (#4123) 2020-01-09 09:07:52 -08:00
MathTests.cpp add til::math, use it for float conversions to point, size (#5150) 2020-03-27 22:48:49 +00:00
OperatorTests.cpp Move ConPTY to use til::bitmap (#5024) 2020-03-23 15:57:54 +00:00
PointTests.cpp Add support for autodetecting URLs and making hyperlinks (#7691) 2020-10-28 20:24:43 +00:00
product.pbxproj Introduce til::some (#4123) 2020-01-09 09:07:52 -08:00
RectangleTests.cpp Adjusts High DPI scaling to enable differential rendering (#5345) 2020-04-22 14:59:51 -07:00
ReplaceTests.cpp Add support for iterable, nested commands (#6856) 2020-08-13 21:22:46 +00:00
RunLengthEncodingTests.cpp Introduce til::rle - a run length encoded vector (#10099) 2021-05-20 17:27:50 +00:00
SizeTests.cpp Implement a pair of shims for cls, Clear-Host in conpty mode (#5627) 2020-04-30 21:53:31 +00:00
SomeTests.cpp til::bitmap (#4967) 2020-03-19 16:10:13 +00:00
sources Introduce til::rle - a run length encoded vector (#10099) 2021-05-20 17:27:50 +00:00
SPSCTests.cpp Fix #8695: til::spsc assignment operators don't return anything (#8811) 2021-01-19 11:41:08 +00:00
StaticMapTests.cpp Introduce til::presorted_static_map (#7640) 2020-09-29 19:01:50 +00:00
til.unit.tests.vcxproj Introduce til::rle - a run length encoded vector (#10099) 2021-05-20 17:27:50 +00:00
til.unit.tests.vcxproj.filters Add til::static_map, a constexpr key-value store (#7323) 2020-08-18 18:05:14 +00:00
u8u16convertTests.cpp ensure u8u16 handles lead & continuation bytes in separate txns (#4798) 2020-03-04 11:15:35 -08:00
VisualizeControlCodesTests.cpp Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00