def component_changed
bendvy-ecs-core@0.1.0.4 · ordinary_recoverable_component_capture.bend:48
import bendvy-ecs-core@0.1.0.4/ordinary_recoverable_component_capture.bend as OrdinaryRecoverableComponentCapture
import Base
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/owner_product.bend as Product
import bendvy-ecs-core@0.1.0.4/ordinary_recoverable_array_resource.bend as O
import bendvy-ecs-core@0.1.0.4/recoverable_array.bend as A
import bendvy-ecs-core@0.1.0.4/recoverable_component.bend as RC
import bendvy-ecs-core@0.1.0.4/recovery_journal.bend as Journal
48def component_changed(~S:Data,~P:Type,~Q:Type,~R:Type,~E:Data,capture:Array<Q>,journal:List<Journal.Action(~Product.Owner<W.World<S,Col.Column<S,P>,R,E>,Array<Q>>,~Product.Owner<List<RC.Record<S,P>>,List<A.Record<Q>>>)>,result:RC.Replacement<W.World<S,Col.Column<S,P>,R,E>,S,P>) -> ComponentAttempt<O.Frame<Product.Owner<W.World<S,Col.Column<S,P>,R,E>,Array<Q>>,Product.Owner<List<RC.Record<S,P>>,List<A.Record<Q>>>>,P>:
49 match result:
50 case RC.Applied{world,old}:ComponentApplied{O.Frame{Product.Owner{world,capture},(success => s => r => component_inverse(~S,~P,~Q,~R,~E,old,success,s,r)) <> journal}}
51 case RC.Refused{world,incoming,error}:ComponentRefused{O.Frame{Product.Owner{world,capture},journal},incoming,error}