def reserved
bendvy-ecs-core@0.1.0.3 · execution_state.bend:48
import bendvy-ecs-core@0.1.0.3/execution_state.bend as ExecutionState
import Base
import bendvy-ecs-core@0.1.0.3/world.bend as W
import bendvy-ecs-core@0.1.0.3/entity_allocator.bend as A
import bendvy-ecs-core@0.1.0.3/execution_reservation_authority.bend as Authority
48def reserved(-S:Data,+namespace:U32,authorized:Maybe<&2,U32>,permit:Authority.Permit,result:A.Allocator & A.Reservation) -> Invocation<S> & W.Reservation<S>:
49 match result:
50 case (allocator,A.Exhausted{}):(Invocation{namespace,allocator,authorized,permit},W.ReservationRejected{W.CapacityExceeded{}})
51 case (allocator,A.Reserved{+key}):reserved_pending(S,namespace,authorized,permit,W.Handle{namespace,key},A.set(allocator,key,A.Pending{}))