def with_resource

bendvy-ecs-core@0.1.0.4 · ordinary_binding_provision.bend:105

import bendvy-ecs-core@0.1.0.4/ordinary_binding_provision.bend as OrdinaryBindingProvision
import Base
import bendvy-ecs-core@0.1.0.4/world.bend as W
import bendvy-ecs-core@0.1.0.4/ordinary_schema.bend as Schema
import bendvy-ecs-core@0.1.0.4/schema_fragments.bend as Fragment
import bendvy-ecs-core@0.1.0.4/ordinary_schema_provision.bend as Ordinary
import bendvy-ecs-core@0.1.0.4/ordinary_schema_dump.bend as Dump

105# Extend component provisioning with one ordinary resource declaration and
106# owner-preserving renderer. Adds None component/count slots for that resource;
107# it is not counted as a component. Does not construct R or inspect World.
108def with_resource(~S:Data,~C:Type,~R:Type,~empty:Unit -> C,~count:C -> List<&2,W.Handle<S>> -> C & List<&2,Maybe<&2,U32>>,~read:C -> U32 -> C & List<&2,Maybe<&2,String>>,~before:Unit -> Unit & List<&2,Maybe<&2,String>>,~show:R -> R & String,resource:Schema.Resource<S,R>,base:Dump.Provision<S,C,Unit,empty,count,read,before>) -> Dump.Provision<S,C,R,empty,resource_count(~S,~C,~count),resource_values(~C,~read),resources(~R,~before,~show)>:
109  match resource base:
110    case Schema.Resource{+key} Dump.Provision{Ordinary.Provision{Schema.Schema{entries}}}:Dump.Provision{Ordinary.Provision{Schema.Schema{List.append(&2,Fragment.Entry<S>,entries,[Fragment.Entry{Fragment.Resource{},key,key}])}}}

Uses (17)

Used by (0)

No other definition uses this definition.