def preflighted

bendvy-ecs-core@0.1.0.4 · ordinary_optional_resource_system.bend:9

import bendvy-ecs-core@0.1.0.4/ordinary_optional_resource_system.bend as OrdinaryOptionalResourceSystem
import Base
import bendvy-ecs-core@0.1.0.4/ordinary_optional_resource_declaration.bend as D
import bendvy-ecs-core@0.1.0.4/ordinary_resource_field_system.bend as Field
import bendvy-ecs-core@0.1.0.4/world.bend as W
import bendvy-ecs-core@0.1.0.4/transaction.bend as T
import bendvy-ecs-core@0.1.0.4/check.bend as K
import bendvy-ecs-core@0.1.0.4/system.bend as Sys

9# Existing transaction body is reached only after the declared slot preflight.
10def preflighted(~S:Data,~C:Type,~R:Type,~E:Data,~Ops:Type -> Type,~Args:Data,~Out:Type,~Value:Data,~declaration:D.Declaration<S,C,R,E,Ops,Value>,~body:@-H:Type -> @-caps:Ops(H) -> Args -> H -> H & (T.Outcome<K.Error> & Out),args:Args,result:W.World<S,C,R,E> & List<&2,String>) -> Sys.Outcome<W.World<S,C,R,E>,K.Error,Out>:
11  match result:
12    case (world,[]):Field.runner(~S,~C,~R,~E,~Ops,~Args,~K.Error,~Out,~D.ordinary(~S,~C,~R,~E,~Ops,~Value,declaration),~body,world,args)
13    case (world,missing):Sys.Failed{world,K.MissingRuntimeRequirements{missing}}

Uses (11)

Used by (1)