def tx_remove_observed

bendvy-ecs-core@0.1.0.4 · structural.bend:76

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
import bendvy-ecs-core@0.1.0.4/transaction.bend as T

76# Stage removal plus a Data notice callback. Immediate invalid-handle
77# refusal changes no queue. At the barrier a notice is published only when
78# replacement succeeds and a component owner was actually displaced. No
79# notice is emitted for absent/already-invalid targets; this does not return
80# the removed payload or invent finalization of user-owned resources.
81def tx_remove_observed(~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,family: F.Family<S,Store,Rest,C,V,Token,take,put,project>,tx: T.Tx<W.World<S,Store,R,E>,E>,+handle: W.Handle<S>) -> Queued<T.Tx<W.World<S,Store,R,E>,E>,C>:
82  match tx:
83    case T.Tx{world,undo,commands,events,trace}: removed_queue_join(~S,~Store,~R,~E,~Rest,~C,~V,~Token,~take,~put,~project,~record,family,W.valid(~S,~Store,~R,~E,world,handle),undo,commands,events,trace,handle,None{})

Uses (10)

Used by (1)