def registration_checked

bendvy-ecs-core@0.1.0.4 · owned_event_family_reader_query.bend:95

import bendvy-ecs-core@0.1.0.4/owned_event_family_reader_query.bend as OwnedEventFamilyReaderQuery
import Base
import bendvy-ecs-core@0.1.0.4/change_tick.bend as Tick
import bendvy-ecs-core@0.1.0.4/world.bend as W
import bendvy-ecs-core@0.1.0.4/system.bend as Sys
import bendvy-ecs-core@0.1.0.4/transaction.bend as T
import bendvy-ecs-core@0.1.0.4/compose.bend as Q
import bendvy-ecs-core@0.1.0.4/ordinary_query_declaration.bend as Decl
import bendvy-ecs-core@0.1.0.4/owned_event_log.bend as Log
import bendvy-ecs-core@0.1.0.4/owner_product.bend as Product
import bendvy-ecs-core@0.1.0.4/capabilities.bend as Cap
import bendvy-ecs-core@0.1.0.4/event_runtime.bend as Ev
import bendvy-ecs-core@0.1.0.4/event_family_routing.bend as Route
import bendvy-ecs-core@0.1.0.4/event_stream.bend as Stream
import bendvy-ecs-core@0.1.0.4/ordinary_event_declaration.bend as Event
import bendvy-ecs-core@0.1.0.4/ordinary_system.bend as Ordinary

95def registration_checked(~S:Data,~C:Type,~R:Type,~P:Type,~Rest:Type,~E:Data,~path:Product.Lens<R,Log.Log<P>,Rest>,~Request:Type,~Projection:Data,~Args:Type,~Observation:Type,~U:Data,~Out:Data,~Ops:Type -> Type,~at:P -> Request -> P & Projection,~project:@-H:Type -> @-read:Cap.Request<H,Request,Projection> -> H -> Args -> H & Projected<Args,Observation,U>,~query:Decl.Declaration<S,Q.Frame<S,C,R,E>,Ops(Q.Frame<S,C,R,E>)>,~body:@-H:Type -> @-caps:Ops(H) -> Observation -> Args -> H -> H & (Observation & (Args & (T.Outcome<U> & Out))),~F:Type,~take:F -> F & Stream.Stream<S,Nat>,~put:F -> Stream.Stream<S,Nat> -> F,allowed:Bool,family:F,+stream:Stream.Stream<S,Nat>,tick:Nat,name:String,world:W.World<S,C,R,E>,namespace:U32) -> Route.Registration<S,C,R,E,Nat,F,Args & Maybe<&2,Tick.Tick>,Unit,Reply<Args,Observation,U,Out>,take,put,runner(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Observation,~U,~Out,~Ops,~at,~project,~query,~body)>:
96  match allowed:
97    case False{}:Route.RegistrationFailed{Route.Runtime{world,put(family,stream),tick}}
98    case True{}:Route.registration_result(~S,~C,~R,~E,~Nat,~F,~(Args & Maybe<&2,Tick.Tick>),~Unit,~Reply<Args,Observation,U,Out>,~take,~put,~runner(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Observation,~U,~Out,~Ops,~at,~project,~query,~body),family,stream,tick,namespace,Sys.register(~S,~C,~R,~E,~Ev.Input<Nat,Args & Maybe<&2,Tick.Tick>>,~Unit,~Reply<Args,Observation,U,Out>,~runner(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Observation,~U,~Out,~Ops,~at,~project,~query,~body),world,name,List.append(&2,String,[Event.access(~S,~Nat,Stream.read_declaration(~S,~Nat,stream))],Ordinary.access(~S,Decl.clauses(~S,~Q.Frame<S,C,R,E>,~Ops(Q.Frame<S,C,R,E>),query)))))

Uses (30)

Used by (1)