18template <
typename DISTANCE>
25template <
typename DISTANCE,
typename STYLE>
28 std::unique_ptr<Partitioning<DISTANCE>>
starts;
29 std::unique_ptr<SplitVector<STYLE>>
styles;
43 DISTANCE
Length() const noexcept;
54 DISTANCE
Runs() const noexcept;
56 bool AllSameAs(STYLE value) const noexcept;
57 DISTANCE
Find(STYLE value, DISTANCE start) const noexcept;
DISTANCE StartRun(DISTANCE position) const noexcept
void RemoveRunIfSameAsPrevious(DISTANCE run)
DISTANCE RunFromPosition(DISTANCE position) const noexcept
RunStyles(RunStyles &&)=delete
std::unique_ptr< Partitioning< DISTANCE > > starts
STYLE ValueAt(DISTANCE position) const noexcept
RunStyles(const RunStyles &)=delete
DISTANCE Runs() const noexcept
void RemoveRun(DISTANCE run)
DISTANCE SplitRun(DISTANCE position)
DISTANCE EndRun(DISTANCE position) const noexcept
DISTANCE FindNextChange(DISTANCE position, DISTANCE end) const noexcept
void operator=(RunStyles &&)=delete
FillResult< DISTANCE > FillRange(DISTANCE position, STYLE value, DISTANCE fillLength)
void RemoveRunIfEmpty(DISTANCE run)
void operator=(const RunStyles &)=delete
bool AllSame() const noexcept
DISTANCE Find(STYLE value, DISTANCE start) const noexcept
bool AllSameAs(STYLE value) const noexcept
void DeleteRange(DISTANCE position, DISTANCE deleteLength)
void InsertSpace(DISTANCE position, DISTANCE insertLength)
DISTANCE Length() const noexcept
void SetValueAt(DISTANCE position, STYLE value)
std::unique_ptr< SplitVector< STYLE > > styles
Styling buffer using one element for each run rather than using a filled buffer.