def pair

bendvy-ecs-core@0.1.0.3 · feature.bend:143

import bendvy-ecs-core@0.1.0.3/feature.bend as Feature
import Base
import bendvy-ecs-core@0.1.0.3/execution_registry.bend as Registry
import bendvy-ecs-core@0.1.0.3/dependency_registration.bend as Reg
import bendvy-ecs-core@0.1.0.3/dependency_executor.bend as Exec
import bendvy-ecs-core@0.1.0.3/dependency_composer_program.bend as Scoped

143def pair(~S:Data,~World:Type,~Left:Type,~Right:Type,~Error:Data,~Out:Data,~leftDispatch:Left -> World -> U32 -> Left & (World & Exec.Invocation<Error,Out>),~rightDispatch:Right -> World -> U32 -> Right & (World & Exec.Invocation<Error,Out>),left:Assembly<S,Reg.Registry<World,Left,Error,Out,leftDispatch>>,right:Assembly<S,Reg.Registry<World,Right,Error,Out,rightDispatch>>) -> Assembly<S,Reg.Registry<World,Reg.Product<Left,Right>,Error,Out,Reg.paired_dispatch(~World,~Left,~Right,~Error,~Out,~leftDispatch,~rightDispatch)>>:
144  match left right:
145    case Assembly{left,lf,+ls} Assembly{right,rf,+rs}:Assembly{Sequence{left,right},Registry.paired(~World,~Left,~Right,~Error,~Out,~leftDispatch,~rightDispatch,lf,rf),Scoped.Scope{List.append(&2,U32,scope_members(ls),scope_members(rs)),[ls,rs]}}

Uses (13)

Used by (0)

No other definition uses this definition.