def spawn_validated
bendvy-ecs-core@0.1.0.4 · decode_frame.bend:79
import bendvy-ecs-core@0.1.0.4/decode_frame.bend as DecodeFrame
import Base
import bendvy-ecs-core@0.1.0.4/decode_requests.bend as Request
import bendvy-ecs-core@0.1.0.4/bundle_install.bend as Install
import bendvy-ecs-core@0.1.0.4/decode_data.bend as D
import bendvy-ecs-core@0.1.0.4/world.bend as World
import bendvy-ecs-core@0.1.0.4/ordinary_declaration.bend as Identity
79def spawn_validated(~S:Data,~C:Type,~R:Type,~E:Data,~P:Type,~Q:Type,~identity:Identity.Declaration<S,P>,~project:P -> P & D.Raw,~install:World.World<S,C,R,E> -> World.Handle<S> -> Request.Packet<P> -> Install.Attempt<World.World<S,C,R,E>,Request.Packet<P>,Q>,frame:Frame<S,C,R,E,P,Q,identity,project>,receipt:D.Receipt<P>) -> Frame<S,C,R,E,P,Q,identity,project> & Request.Output<S,P>:
80 match receipt:
81 case D.Receipt{owner,D.Rejected{error}}:(frame,Request.Refused{Some{owner},Request.Validation{error}})
82 case D.Receipt{owner,D.Accepted{canonical}}:spawn_projected(~S,~C,~R,~E,~P,~Q,~identity,~project,~install,frame,canonical,project(owner))