def append
import bendvy-ecs-core@0.1.0.4/ordinary_binding_provision.bend as OrdinaryBindingProvisionimport 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
83# Append two component provisions over the same aggregate store owner.
84# Combines their entry/count/display order without constructing a storage
85# product. Supplied bindings must consistently refer to that same owner shape.
86def append(~S:Data,~C:Type,~empty:Unit -> C,~lc:C -> List<&2,W.Handle<S>> -> C & List<&2,Maybe<&2,U32>>,~rc:C -> List<&2,W.Handle<S>> -> C & List<&2,Maybe<&2,U32>>,~lv:C -> U32 -> C & List<&2,Maybe<&2,String>>,~rv:C -> U32 -> C & List<&2,Maybe<&2,String>>,~lr:Unit -> Unit & List<&2,Maybe<&2,String>>,~rr:Unit -> Unit & List<&2,Maybe<&2,String>>,left:Dump.Provision<S,C,Unit,empty,lc,lv,lr>,right:Dump.Provision<S,C,Unit,empty,rc,rv,rr>) -> Dump.Provision<S,C,Unit,empty,append_count(~S,~C,~lc,~rc),append_values(~C,~lv,~rv),append_resources(~lr,~rr)>:
87 match left right:
88 case Dump.Provision{Ordinary.Provision{Schema.Schema{left}}} Dump.Provision{Ordinary.Provision{Schema.Schema{right}}}:Dump.Provision{Ordinary.Provision{Schema.Schema{List.append(&2,Fragment.Entry<S>,left,right)}}}
Uses (15)
Used by (0)
No other definition uses this definition.