3#include "di/container/ring/prelude.h"
24 constexpr static auto target_cells_per_group = usize(di::NumericLimits<u16>::max / 2);
26 constexpr static auto max_cells_per_group = usize(di::NumericLimits<u16>::max);
29 constexpr static auto max_cells = usize(target_cells_per_group * 100);
31 constexpr static auto max_groups = di::divide_round_up(max_cells, target_cells_per_group);
35 usize cell_count { 0 };
36 di::Optional<u32> last_reflowed_to;
42 auto total_rows() const -> usize {
return m_total_rows; }
100 auto find_row(u64 row)
const -> di::Tuple<u32, RowGroup const&>;
103 auto get_target_cells_per_group(
bool last_row_overflow)
const {
107 return last_row_overflow ? max_cells_per_group : target_cells_per_group;
110 auto find_row_group(u64 row) -> di::Tuple<u32, u64, Group&>;
111 auto is_last_group_full() const ->
bool;
112 auto add_group() -> Group&;
114 di::Ring<Group> m_groups;
115 usize m_total_rows { 0 };
116 u64 m_absolute_row_start { 0 };
Represents a group of terminal rows.
Definition row_group.h:24
Definition absolute_position.h:6