Skip to main content

Module list

Module list 

Source
Expand description

A virtualized list over a caller-owned data set.

The list never holds the rows. It asks the caller to render one index at a time, and the caller stamps each row with the business identity that row already has, so a semantic id never encodes where the row happens to sit.

§Only rendered rows are published

Virtualization means the window holds a viewport, not a data set. A row outside the viewport is not laid out, has no bounds, and publishes no semantic node, so a test can only assert what is on screen. The list node itself carries the total in value, which is how a test states the honest version: a thousand items exist, twelve of them are rendered.

Virtualization needs a bounded viewport. With List::visible_rows the list renders only the rows that fit; without it the list sizes itself to its content and every row is laid out.

Re-exports§

pub use crate::data::viewport::scroll_to_row;

Structs§

List
A list that renders only the rows its viewport holds.
ListItem
One row, named by the caller.