def take

bendvy-ecs-core@0.1.0.3 · execution_command_removed.bend:36

import bendvy-ecs-core@0.1.0.3/execution_command_removed.bend as ExecutionCommandRemoved
import Base
import bendvy-ecs-core@0.1.0.3/execution_composer_layout.bend as Layout

36def take(~S:Data,layout:Layout.Layout) -> U32 -> Layout.columns(~S,layout) -> Layout.columns(~S,layout) & Removed(layout):
37  match layout:
38    case Layout.EmptyLayout{}:index => owner => (owner,Unit{})
39    case Layout.LayoutLeaf{P,V,refresh,key,accessPolicy}:leaf(~S,P,V,key,Layout.LayoutLeaf{P,V,refresh,key,accessPolicy})
40    case Layout.ClassifiedLayoutLeaf{P,V,refresh,key,policy,accessPolicy}:leaf(~S,P,V,key,Layout.ClassifiedLayoutLeaf{P,V,refresh,key,policy,accessPolicy})
41    case Layout.LayoutPair{left,right}:index => owner => pair(~S,left,right,take(~S,left),take(~S,right),index,owner)

Uses (9)

Used by (1)