terminal/src/inc/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
..
at.h Add support for more OSC color formats (#7578) 2020-10-14 17:29:10 -07:00
bitmap.h Eliminate more transient allocations: Titles and invalid rectangles and bitmap runs and utf8 conversions (#8621) 2021-02-16 20:52:33 +00:00
coalesce.h Make Global and Profile settings inheritable (#7923) 2020-10-27 17:35:09 +00:00
color.h Introduce MS.Term.Core.Color to replace W.U.Color for Core/Control/TSM (#9658) 2021-03-30 20:15:49 +00:00
math.h add til::math, use it for float conversions to point, size (#5150) 2020-03-27 22:48:49 +00:00
operators.h Render row-by-row instead of invalidating entire screen (#5185) 2020-04-13 20:09:02 +00:00
pmr.h Merged PR 5770253: [Git2Git] Merged PR 5760120: Add propsheet chooser to Windows 2021-03-10 01:19:04 +00:00
point.h Make the window name _quake special (#9785) 2021-04-26 19:36:23 +00:00
rectangle.h Adjusts High DPI scaling to enable differential rendering (#5345) 2020-04-22 14:59:51 -07:00
replace.h Fix typo in replace.h (#9679) 2021-04-06 10:38:51 -05:00
rle.h Introduce til::rle - a run length encoded vector (#10099) 2021-05-20 17:27:50 +00:00
size.h Make the window name _quake special (#9785) 2021-04-26 19:36:23 +00:00
some.h Move ConPTY to use til::bitmap (#5024) 2020-03-23 15:57:54 +00:00
spsc.h Fix #8695: til::spsc assignment operators don't return anything (#8811) 2021-01-19 11:41:08 +00:00
static_map.h Add support for more OSC color formats (#7578) 2020-10-14 17:29:10 -07:00
u8u16convert.h ci: run spell check in CI, fix remaining issues (#4799) 2020-03-25 11:02:53 -07:00
visualize_control_codes.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00