def split

bendvy-ecs-core@0.1.0.4 · declared_family.bend:10

import bendvy-ecs-core@0.1.0.4/declared_family.bend as DeclaredFamily
import Base
import bendvy-ecs-core@0.1.0.4/ordinary_declaration.bend as Identity
import bendvy-ecs-core@0.1.0.4/persistence_declaration.bend as Decl
import bendvy-ecs-core@0.1.0.4/snapshot_leaf.bend as Leaf
import bendvy-ecs-core@0.1.0.4/decode_data.bend as D
import bendvy-ecs-core@0.1.0.4/column.bend as Col

10# Closed trusted schema lenses, as in existing component.Family. The retained
11# recipe becomes part of Family's Rest and survives ordinary column operations.
12def split(~S:Data,~P:Type,~Rest:Type,~identity:Identity.Declaration<S,P>,~save:P -> P & D.Raw,observed:Rest & Leaf.Component<S,P,identity,save>) -> (Rest & Decl.Constructed<S,P,identity,save>) & Col.Column<S,P>:
13  match observed:
14    case (rest,Leaf.Component{column,declaration}):((rest,declaration),column)

Uses (7)

Used by (1)