def inverse

bendvy-ecs-core@0.1.0.4 · recoverable_array_owner.bend:16

import bendvy-ecs-core@0.1.0.4/recoverable_array_owner.bend as RecoverableArrayOwner
import Base
import bendvy-ecs-core@0.1.0.4/owner_product.bend as Product
import bendvy-ecs-core@0.1.0.4/recoverable_array.bend as A
import bendvy-ecs-core@0.1.0.4/recoverable_owner.bend as Owner

16def inverse(~State:Type,~P:Type,~Rest:Type,~lens:Product.Lens<State,Array<P>,Rest>,~Recovery:Type,~ReleasedRest:Type,~release:Product.Lens<Recovery,List<A.Record<P>>,ReleasedRest>,old:A.Record<P>,success:Bool,state:State,recovery:Recovery) -> State & Recovery:
17  match success:
18    case True{}:(state,Owner.append(~Recovery,~A.Record<P>,~ReleasedRest,~release,recovery,old))
19    case False{}:restore(~State,~P,~Rest,~lens,~Recovery,~ReleasedRest,~release,old,recovery,Product.get_field(~State,~Array<P>,~Rest,lens)(state))

Uses (10)

Used by (1)