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
12
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},[])