def whole_stamp
bendvy-ecs-core@0.1.0.3 · execution_query_lifecycle.bend:22
import bendvy-ecs-core@0.1.0.3/execution_query_lifecycle.bend as ExecutionQueryLifecycle
import Base
import bendvy-ecs-core@0.1.0.3/execution_composer_layout.bend as L
import bendvy-ecs-core@0.1.0.3/execution_query_schema.bend as Schema
import bendvy-ecs-core@0.1.0.3/owner_product.bend as Product
import bendvy-ecs-core@0.1.0.3/lifecycle.bend as Life
22def whole_stamp(~S:Data,layout:L.Layout,route:L.Route,owner:L.columns(~S,layout),index:U32) -> L.columns(~S,layout) & Life.Stamp:
23 match layout route owner:
24 case L.LayoutLeaf{P,V,refresh,key,policy} L.AtLeaf{} L.ColumnSlot{column}:whole_cached(S,P,V,key,L.LayoutLeaf{P,V,refresh,key,policy},index,Schema.cache_column(S,P,V,column,0))
25 case L.ClassifiedLayoutLeaf{P,V,refresh,key,kind,policy} L.AtLeaf{} L.ColumnSlot{column}:whole_cached(S,P,V,key,L.ClassifiedLayoutLeaf{P,V,refresh,key,kind,policy},index,Schema.cache_column(S,P,V,column,0))
26 case L.LayoutPair{left,right} L.InLeft{path} Product.Owner{l,r}:whole_left(~S,left,right,r,whole_stamp(~S,left,path,l,index))
27 case L.LayoutPair{left,right} L.InRight{path} Product.Owner{l,r}:whole_right(~S,left,right,l,whole_stamp(~S,right,path,r,index))
28 case _ _ owner:(owner,Life.Stamp{None{},None{}})