Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce til::rle - a run length encoded vector #10099

Merged
4 commits merged into from
May 20, 2021
Merged

Introduce til::rle - a run length encoded vector #10099

4 commits merged into from
May 20, 2021

Commits on May 14, 2021

  1. Introduce til::rle - a run length encoded vector

    ## 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 <[email protected]>
    lhecker and miniksa committed May 14, 2021
    Configuration menu
    Copy the full SHA
    4b0eeef View commit details
    Browse the repository at this point in the history

Commits on May 19, 2021

  1. Address review comments

    lhecker committed May 19, 2021
    Configuration menu
    Copy the full SHA
    7fdfaa7 View commit details
    Browse the repository at this point in the history

Commits on May 20, 2021

  1. Address reviewer comments

    lhecker committed May 20, 2021
    Configuration menu
    Copy the full SHA
    8a4039f View commit details
    Browse the repository at this point in the history
  2. Improve documentation

    lhecker committed May 20, 2021
    Configuration menu
    Copy the full SHA
    a2ce9fc View commit details
    Browse the repository at this point in the history