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>
60 lines
2.7 KiB
XML
60 lines
2.7 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<PropertyGroup>
|
|
<ProjectGuid>{0CF235BD-2DA0-407E-90EE-C467E8BBC714}</ProjectGuid>
|
|
<Keyword>Win32Proj</Keyword>
|
|
<RootNamespace>bufferout</RootNamespace>
|
|
<ProjectName>BufferOut</ProjectName>
|
|
<TargetName>ConBufferOut</TargetName>
|
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
</PropertyGroup>
|
|
<Import Project="$(SolutionDir)src\common.build.pre.props" />
|
|
<ItemGroup>
|
|
<ClCompile Include="..\AttrRow.cpp" />
|
|
<ClCompile Include="..\cursor.cpp" />
|
|
<ClCompile Include="..\OutputCell.cpp" />
|
|
<ClCompile Include="..\OutputCellIterator.cpp" />
|
|
<ClCompile Include="..\OutputCellRect.cpp" />
|
|
<ClCompile Include="..\OutputCellView.cpp" />
|
|
<ClCompile Include="..\Row.cpp" />
|
|
<ClCompile Include="..\search.cpp" />
|
|
<ClCompile Include="..\TextColor.cpp" />
|
|
<ClCompile Include="..\TextAttribute.cpp" />
|
|
<ClCompile Include="..\textBuffer.cpp" />
|
|
<ClCompile Include="..\textBufferCellIterator.cpp" />
|
|
<ClCompile Include="..\textBufferTextIterator.cpp" />
|
|
<ClCompile Include="..\CharRow.cpp" />
|
|
<ClCompile Include="..\CharRowCell.cpp" />
|
|
<ClCompile Include="..\CharRowCellReference.cpp" />
|
|
<ClCompile Include="..\precomp.cpp">
|
|
<PrecompiledHeader>Create</PrecompiledHeader>
|
|
</ClCompile>
|
|
<ClCompile Include="..\UnicodeStorage.cpp" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ClInclude Include="..\AttrRow.hpp" />
|
|
<ClInclude Include="..\cursor.h" />
|
|
<ClInclude Include="..\DbcsAttribute.hpp" />
|
|
<ClInclude Include="..\ICharRow.hpp" />
|
|
<ClInclude Include="..\LineRendition.hpp" />
|
|
<ClInclude Include="..\OutputCell.hpp" />
|
|
<ClInclude Include="..\OutputCellIterator.hpp" />
|
|
<ClInclude Include="..\OutputCellRect.hpp" />
|
|
<ClInclude Include="..\OutputCellView.hpp" />
|
|
<ClInclude Include="..\Row.hpp" />
|
|
<ClInclude Include="..\search.h" />
|
|
<ClInclude Include="..\TextColor.h" />
|
|
<ClInclude Include="..\TextAttribute.h" />
|
|
<ClInclude Include="..\textBuffer.hpp" />
|
|
<ClInclude Include="..\textBufferCellIterator.hpp" />
|
|
<ClInclude Include="..\textBufferTextIterator.hpp" />
|
|
<ClInclude Include="..\CharRow.hpp" />
|
|
<ClInclude Include="..\CharRowCell.hpp" />
|
|
<ClInclude Include="..\CharRowCellReference.hpp" />
|
|
<ClInclude Include="..\precomp.h" />
|
|
<ClInclude Include="..\UnicodeStorage.hpp" />
|
|
</ItemGroup>
|
|
<!-- Careful reordering these. Some default props (contained in these files) are order sensitive. -->
|
|
<Import Project="$(SolutionDir)src\common.build.post.props" />
|
|
</Project>
|