def component_cleared

bendvy-ecs-core@0.1.0.4 · restore_clear.bend:11

import bendvy-ecs-core@0.1.0.4/restore_clear.bend as RestoreClear
import Base
import bendvy-ecs-core@0.1.0.4/restore_data.bend as R
import bendvy-ecs-core@0.1.0.4/snapshot_leaf.bend as Leaf
import bendvy-ecs-core@0.1.0.4/ordinary_declaration.bend as Identity
import bendvy-ecs-core@0.1.0.4/persistence_declaration.bend as Decl
import bendvy-ecs-core@0.1.0.4/decode_data.bend as D
import bendvy-ecs-core@0.1.0.4/column.bend as Col
import bendvy-ecs-core@0.1.0.4/world.bend as W

11# Called only after complete staging and capacity admission. Old payloads leave
12# scope here; no inverse, destructor or finalizer callback is executed.
13def component_cleared(~S:Data,~P:Type,~identity:Identity.Declaration<S,P>,~project:P -> P & D.Raw,declaration:Decl.Constructed<S,P,identity,project>,+handle:W.Handle<S>,observed:Col.SwapOutcome<S,P>) -> Leaf.Component<S,P,identity,project> & List<&2,R.Change<S>>:
14  match observed:
15    case Col.Accepted{column,Some{owner}}:(Leaf.Component{column,declaration},[R.Removed{handle,Identity.key(~S,~P,identity)}])
16    case Col.Accepted{column,None{}}:(Leaf.Component{column,declaration},[])
17    case Col.Rejected{column,_}:(Leaf.Component{column,declaration},[])

Uses (12)

Used by (1)