master
go 24 lines 778 Bytes
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package program
4
5 // DimensionOrderingMode defines deterministic dimension ordering policy.
6 type DimensionOrderingMode string
7
8 const (
9 // DimensionOrderingStaticThenDynamicLexical keeps declaration order for
10 // static dimensions and lexical ordering for dynamic rendered dimensions.
11 DimensionOrderingStaticThenDynamicLexical DimensionOrderingMode = "static_then_dynamic_lexical"
12 )
13
14 // OrderingPolicy captures deterministic ordering choices for one Program.
15 type OrderingPolicy struct {
16 DimensionMode DimensionOrderingMode
17 }
18
19 // DefaultOrderingPolicy returns phase-1 baseline ordering contract.
20 func DefaultOrderingPolicy() OrderingPolicy {
21 return OrderingPolicy{
22 DimensionMode: DimensionOrderingStaticThenDynamicLexical,
23 }
24 }