def resource_taken
bendvy-ecs-core@0.1.0.4 · owned_event_family_storage.bend:18
import bendvy-ecs-core@0.1.0.4/owned_event_family_storage.bend as OwnedEventFamilyStorage
import Base
import bendvy-ecs-core@0.1.0.4/world.bend as W
import bendvy-ecs-core@0.1.0.4/world_resource_owner.bend as Resource
import bendvy-ecs-core@0.1.0.4/owner_product.bend as Product
import bendvy-ecs-core@0.1.0.4/owned_event_log.bend as Log
18def resource_taken(~S:Data,~C:Type,~R:Type,~P:Type,~Rest:Type,~E:Data,~path:Product.Lens<R,Log.Log<P>,Rest>,~Out:Type,effect:Log.Log<P> -> Log.Log<P> & Out,result:Resource.Rest<S,C,R,E> & R) -> W.World<S,C,R,E> & Out:
19 match result:
20 case (worldRest,resource):log_taken(~S,~C,~R,~P,~Rest,~E,~path,~Out,effect,worldRest,Product.get_field(~R,~Log.Log<P>,~Rest,path)(resource))