terminal/.github
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
..
actions/spelling Introduce til::rle - a run length encoded vector (#10099) 2021-05-20 17:27:50 +00:00
ISSUE_TEMPLATE Update the bug report template for 04-21 schema (#9961) 2021-04-26 17:06:12 -05:00
linters Add support for autodetecting URLs and making hyperlinks (#7691) 2020-10-28 20:24:43 +00:00
workflows ci: spelling: update to v0.0.18 (#10035) 2021-05-14 08:28:37 -05:00
PULL_REQUEST_TEMPLATE.md Add schema check to PR template (#6599) 2020-06-19 12:06:23 -07:00