def reserved
bendvy-ecs-core@0.1.0.4 · restore_apply.bend:23
import bendvy-ecs-core@0.1.0.4/restore_apply.bend as RestoreApply
import Base
import bendvy-ecs-core@0.1.0.4/entity_key.bend as Key
import bendvy-ecs-core@0.1.0.4/restore_data.bend as R
import bendvy-ecs-core@0.1.0.4/world.bend as W
23def reserved(~S:Data,~C:Type,~Resources:Type,~E:Data,~emit:R.Change<S> -> E,saved:Key.Key,bindings:List<&2,R.Binding<S>>,next:W.World<S,C,Resources,E> -> List<&2,R.Binding<S>> -> Spawned<S,C,Resources,E>,observed:W.World<S,C,Resources,E> & W.Reservation<S>) -> Spawned<S,C,Resources,E>:
24 match observed:
25 case (world,W.ReservationRejected{_}):Exhausted{world,List.reverse(&2,R.Binding<S>,bindings)}
26 case (world,W.Reserved{+handle}):spawned(~S,~C,~Resources,~E,~emit,saved,handle,bindings,next,(world,W.Accepted{}))