def reserved
bendvy-ecs-core@0.1.0.3 · execution_restore_publication.bend:22
import bendvy-ecs-core@0.1.0.3/execution_restore_publication.bend as ExecutionRestorePublication
import Base
import bendvy-ecs-core@0.1.0.3/execution_composer_layout.bend as Layout
import bendvy-ecs-core@0.1.0.3/execution_reservation_bundle.bend as Bundle
import bendvy-ecs-core@0.1.0.3/execution_reservation_materialization.bend as Materialize
import bendvy-ecs-core@0.1.0.3/execution_command_permission.bend as Permission
import bendvy-ecs-core@0.1.0.3/entity_key.bend as Key
import bendvy-ecs-core@0.1.0.3/world.bend as W
import bendvy-ecs-core@0.1.0.3/change_tick.bend as Tick
22def reserved(~S:Data,~layout:Layout.Layout,~Resource:Type,~E:Data,saved:Key.Key,bundle:Bundle.Payload(layout),tick:Tick.Tick,result:W.World<S,Layout.columns(~S,layout),Resource,E> & W.Reservation<S>) -> W.World<S,Layout.columns(~S,layout),Resource,E> & Receipt<S,layout>:
23 match result:
24 case (world,W.ReservationRejected{_}):(world,AllocationRefused{saved,bundle})
25 case (world,W.Reserved{+handle}):materialized(~S,~layout,~Resource,~E,saved,Materialize.apply_at(~S,~Resource,~E,~layout,Permission.EntityStructural{},W.mark_pending(~S,~Layout.columns(~S,layout),~Resource,~E,world,handle),handle,bundle,tick))