def projected
bendvy-ecs-core@0.1.0.3 · execution_save_recipe.bend:29
import bendvy-ecs-core@0.1.0.3/execution_save_recipe.bend as ExecutionSaveRecipe
import Base
import bendvy-ecs-core@0.1.0.3/ordinary_declaration.bend as C
import bendvy-ecs-core@0.1.0.3/persistence_declaration.bend as Decl
import bendvy-ecs-core@0.1.0.3/decode_data.bend as D
29def projected(~S:Data,~P:Type,~identity:C.Declaration<S,P>,~project:P -> P & D.Raw,declaration:Decl.Constructed<S,P,identity,project>,result:D.Receipt<P>) -> Leaf<S,P,identity,project> & (P & Field):
30 match result:
31 case D.Receipt{owner,D.Accepted{value}}:(Constructed{declaration},(owner,Saved{D.Field{C.key(~S,~P,identity),value}}))
32 case D.Receipt{owner,D.Rejected{error}}:(Constructed{declaration},(owner,Refused{InvalidProjection{C.key(~S,~P,identity),error}}))