sliver_tree/_deferred_sync_gate library
Internal: holds a structural diff while a drag is live and re-examines it once the drag ends. Not exported from the package barrel.
Shared by SyncedSliverTree and the declarative SectionedSliverList,
which is why the gate carries no policy of its own: each owner decides
which input changes owe a diff, and each attaches at a different point
in its own initState.
None of the protocol's rules are checkable at a single call site, so
each is documented where it is enforced. The governing one is SCHEDULE,
DO NOT ACT: a drag-end transition may only queue work, never mutate
structure inline. See _handleReorderChanged.
Classes
-
DeferredSyncGate<
TKey> - Defers one owner's structural diff across a live drag.