pub struct ListDriver {
pub row_height: RowHeight,
pub len: Box<dyn Fn() -> usize>,
pub token_at: Box<dyn Fn(usize) -> u64>,
pub build: Box<dyn Fn(usize, RNode) -> BuiltRow>,
pub reorder: Option<ListReorderDriver>,
}Expand description
Supplied by the list() piece, type-erased over the item type. day-core invokes these to
answer the native data-source and to build/rebind rows.
Fields§
§row_height: RowHeight§len: Box<dyn Fn() -> usize>Current row count (reads the piece’s snapshot; no tree access).
token_at: Box<dyn Fn(usize) -> u64>Stable identity token for row index (for native diffing).
build: Box<dyn Fn(usize, RNode) -> BuiltRow>Build row index into anchor. Uses BuildCx internally, so it MUST be called with no
with_tree borrow held. Returns the row’s scope + a rebind writer.
reorder: Option<ListReorderDriver>Drag-to-reorder half, present when the piece is .reorderable() (docs/list.md).
Auto Trait Implementations§
impl Freeze for ListDriver
impl !RefUnwindSafe for ListDriver
impl !Send for ListDriver
impl !Sync for ListDriver
impl Unpin for ListDriver
impl UnsafeUnpin for ListDriver
impl !UnwindSafe for ListDriver
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more