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)