def slot_available

bendvy-ecs-core@0.1.0.4 · ordinary_optional_resource.bend:31

import bendvy-ecs-core@0.1.0.4/ordinary_optional_resource.bend as OrdinaryOptionalResource
import Base
import bendvy-ecs-core@0.1.0.4/ordinary_schema.bend as Schema
import bendvy-ecs-core@0.1.0.4/owner_product.bend as Product

31# Preflight examines only the slot; it must not invoke the value presenter.
32def slot_available(~S:Data,~R:Type,~P:Type,~Rest:Type,~identity:Schema.Resource<S,P>,~lens:Product.Lens<R,Slot<S,P,identity>,Rest>,result:Rest & Slot<S,P,identity>) -> R & List<&2,String>:
33  match result:
34    case (rest,Missing{}):(Product.put_field(~R,~Slot<S,P,identity>,~Rest,lens)(rest,Missing{}),[Schema.resource_key(~S,~P,identity)])
35    case (rest,Present{owner}):(Product.put_field(~R,~Slot<S,P,identity>,~Rest,lens)(rest,Present{owner}),[])

Uses (9)

Used by (1)