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>
54 lines
390 B
Plaintext
54 lines
390 B
Plaintext
Apc
|
|
apc
|
|
clickable
|
|
copyable
|
|
dalet
|
|
Dcs
|
|
dcs
|
|
dialytika
|
|
dje
|
|
downside
|
|
downsides
|
|
dze
|
|
dzhe
|
|
Enum'd
|
|
ftp
|
|
geeksforgeeks
|
|
ghe
|
|
gje
|
|
hostname
|
|
hostnames
|
|
hyperlink
|
|
hyperlinking
|
|
hyperlinks
|
|
img
|
|
It'd
|
|
kje
|
|
lje
|
|
maxed
|
|
mru
|
|
nje
|
|
ogonek
|
|
ok'd
|
|
overlined
|
|
postmodern
|
|
ptys
|
|
qof
|
|
reimplementation
|
|
reserialization
|
|
reserialize
|
|
reserializes
|
|
runtimes
|
|
shcha
|
|
Sos
|
|
timestamped
|
|
tokenizes
|
|
tonos
|
|
tshe
|
|
UIs
|
|
versioned
|
|
We'd
|
|
wildcards
|
|
yeru
|
|
zhe
|