def merge

bendvy-ecs-core@0.1.0.3 · schema_fragments.bend:135

import bendvy-ecs-core@0.1.0.3/schema_fragments.bend as SchemaFragments
import Base

135# Validate both fragments and their combined entries before combining owners.
136# Success retains left-then-right entries and (L & R) owners; refusal returns
137# both original fragments. No initializer or gameplay callback is invoked.
138def merge(~S: Data,~L: Type,~R: Type,left: Fragment<S,L>,right: Fragment<S,R>) -> Merge<S,L,R>:
139  match left right:
140    case Fragment{+le,l} Fragment{+re,r}: merge_checked(~S,~L,~R,first_failure(validate(~S,le),first_failure(validate(~S,re),validate(~S,List.append(&2,Entry<S>,le,re)))),List.append(&2,Entry<S>,le,re),Fragment{le,l},Fragment{re,r})

Uses (7)

Used by (0)

No other definition uses this definition.