def removal_published
bendvy-ecs-core@0.1.0.4 · structural.bend:57
import bendvy-ecs-core@0.1.0.4/structural.bend as Structural
import Base
import bendvy-ecs-core@0.1.0.4/column.bend as Col
import bendvy-ecs-core@0.1.0.4/component.bend as F
import bendvy-ecs-core@0.1.0.4/world.bend as W
57
58def removal_published(~S: Data,~Store: Type,~R: Type,~E: Data,~Rest: Type,~C: Type,~V: Data,~Token: Data,~take: Store -> Rest & Col.Column<S,C>,~put: Rest -> Col.Column<S,C> -> Store,~project: C -> C & V,~record: W.Handle<S> -> E,handle: W.Handle<S>,result: F.Replacement<W.World<S,Store,R,E>,C>) -> W.World<S,Store,R,E>:
59 match result:
60 case F.Replaced{world,None{}}: world
61 case F.Replaced{world,Some{owner}}: W.event_publish(~S,~Store,~R,~E,world,[record(handle)])
62 case F.ReplaceRejected{world,_,_}: world