def restored

bendvy-ecs-core@0.1.0.4 · recoverable_component.bend:31

import bendvy-ecs-core@0.1.0.4/recoverable_component.bend as RecoverableComponent
import Base
import entity_key.bend as Key
import bendvy-ecs-core@0.1.0.4/world.bend as W
import bendvy-ecs-core@0.1.0.4/column.bend as Col
import bendvy-ecs-core@0.1.0.4/lifecycle.bend as Life

31def restored(~S:Data,~P:Type,+handle:W.Handle<S>,stamp:Life.Stamp,released:Life.Stamp,result:Col.SwapOutcome<S,P>) -> Col.Column<S,P> & Record<S,P>:
32  match handle result:
33    case W.Handle{_,Key.EntityKey{id,_}},Col.Accepted{column,payload}:(Col.restore_stamp(~S,~P,column,id,stamp),Record{handle,released,payload})
34    # For a saved ordinary record, ensure covers its positive live id, hence
35    # swap accepts. Raw rejection returns the untouched incoming owner/record;
36    # it does not claim that a different payload was displaced.
37    case W.Handle{_,Key.EntityKey{id,_}},Col.Rejected{column,payload}:(column,Record{handle,stamp,payload})

Uses (9)

Used by (1)