def component_taken

bendvy-ecs-core@0.1.0.4 · snapshot_leaf.bend:27

import bendvy-ecs-core@0.1.0.4/snapshot_leaf.bend as SnapshotLeaf
import Base
import bendvy-ecs-core@0.1.0.4/persistence_declaration.bend as Decl
import bendvy-ecs-core@0.1.0.4/snapshot_gate.bend as Gate
import bendvy-ecs-core@0.1.0.4/decode_data.bend as D
import bendvy-ecs-core@0.1.0.4/column.bend as Col
import bendvy-ecs-core@0.1.0.4/ordinary_declaration.bend as Canonical

27def component_taken(~S:Data,~P:Type,~identity:Canonical.Declaration<S,P>,~project:P -> P & D.Raw,+id:U32,+declaration:Decl.Constructed<S,P,identity,project>,outcome:Col.SwapOutcome<S,P>) -> Component<S,P,identity,project> & List<&2,D.Field>:
28  match outcome:
29    case Col.Rejected{column,_}:(Component{column,declaration},[])
30    case Col.Accepted{column,None{}}:(Component{column,declaration},[])
31    case Col.Accepted{column,Some{owner}}:component_restored(~S,~P,~identity,~project,declaration,Col.viewed(~S,~P,~Gate.Field,Gate.export_owner(~S,~P,~identity,factory(~S,~P,~identity,~project,declaration),owner),column,id))

Uses (16)

Used by (1)