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.