def checked

bendvy-ecs-core@0.1.0.4 · ordinary_machine_transition_reader.bend:99

import bendvy-ecs-core@0.1.0.4/ordinary_machine_transition_reader.bend as OrdinaryMachineTransitionReader
import Base
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/machine_stream.bend as St

99def checked(~S:Data,~K:Data,~V:Data,~C:Type,~R:Type,~E:Data,~A:Type,~Error:Data,~Out:Type,~take:R -> R & St.Stream<V>,~put:R -> St.Stream<V> -> R,~callback:W.World<S,C,R,E> -> Input<V,A> -> Sys.Outcome<W.World<S,C,R,E>,Error,Out>,allowed:Bool,reader:instance_type(~S,~K,~V,~C,~R,~E,~A,~Error,~Out,~take,~put,~callback),args:A,result:W.World<S,C,R,E> & Bool) -> ReadResult<W.World<S,C,R,E>,instance_type(~S,~K,~V,~C,~R,~E,~A,~Error,~Out,~take,~put,~callback),A,Error,Out,V>:
100  match allowed result:
101    case False{}, (world,_):ReadRejected{world,reader,args}
102    case True{}, (world,False{}):ReadRejected{world,reader,args}
103    case True{}, (world,True{}):clocked(~S,~K,~V,~C,~R,~E,~A,~Error,~Out,~take,~put,~callback,reader,args,W.clock(~S,~C,~R,~E,world))

Uses (11)

Used by (1)