package preserveorder
Import Path
github.com/d2lang/elk-go/internal/layered/intermediate/preserveorder (on go.dev)
Dependency Relation
imports 3 packages, and imported by 2 packages
Involved Source Files
cm_group_model_order.go
Package preserveorder ports ELK Layered's stateful model-order comparators.
Their comparison history is observable and is retained across every call
made by a sort.
port_comparator.go
Package-Level Type Names (total 3)
( LongEdgeOrderingStrategy) ReturnValue() int
func NewNodeComparator(arena *layered.LGraphArena, previousLayer []layered.LNodeID, ordering layered.OrderingStrategy, longEdgeOrder LongEdgeOrderingStrategy, beforePorts bool) *NodeComparator
const DummyNodeOver
const DummyNodeUnder
const LongEdgeEqual
NodeComparator is ELK 0.12.0's ModelOrderNodeComparator for ordinary D2
model orders. BiggerThan and SmallerThan encode the transitive associations
accumulated while the sort calls Compare.
Arena *layered.LGraphArena
BeforePorts bool
BiggerThan map[layered.LNodeID]map[layered.LNodeID]struct{}
LongEdgeOrder LongEdgeOrderingStrategy
Ordering layered.OrderingStrategy
PreviousLayer []layered.LNodeID
SmallerThan map[layered.LNodeID]map[layered.LNodeID]struct{}
(*NodeComparator) ClearTransitiveOrdering()
(*NodeComparator) Compare(first, second layered.LNodeID) int
func NewNodeComparator(arena *layered.LGraphArena, previousLayer []layered.LNodeID, ordering layered.OrderingStrategy, longEdgeOrder LongEdgeOrderingStrategy, beforePorts bool) *NodeComparator
PortComparator ports ELK 0.12.0's ModelOrderPortComparator behavior used by
D2's model-order profile. It retains the comparator's transitive ordering
state because comparisons made earlier in the stable sort affect later ones.
Arena *layered.LGraphArena
BiggerThan map[layered.LPortID]map[layered.LPortID]struct{}
Ordering layered.OrderingStrategy
PortModelOrder bool
PreviousLayer []layered.LNodeID
SmallerThan map[layered.LPortID]map[layered.LPortID]struct{}
TargetNodeModelOrder map[layered.LNodeID]int
(*PortComparator) ClearTransitiveOrdering()
(*PortComparator) Compare(firstID, secondID layered.LPortID) int
func NewPortComparator(arena *layered.LGraphArena, previousLayer []layered.LNodeID, ordering layered.OrderingStrategy, targetNodeModelOrder map[layered.LNodeID]int, portModelOrder bool) *PortComparator
Package-Level Functions (total 3)
CalculateModelOrderOrGroupModelOrder is ELK 0.12's
CMGroupModelOrderCalculator. ENFORCED group order applies only when both
compared elements belong to one of the configured enforced groups.
func NewNodeComparator(arena *layered.LGraphArena, previousLayer []layered.LNodeID, ordering layered.OrderingStrategy, longEdgeOrder LongEdgeOrderingStrategy, beforePorts bool) *NodeComparator func NewPortComparator(arena *layered.LGraphArena, previousLayer []layered.LNodeID, ordering layered.OrderingStrategy, targetNodeModelOrder map[layered.LNodeID]int, portModelOrder bool) *PortComparator
Package-Level Constants (total 3)
const DummyNodeOver LongEdgeOrderingStrategy = 0 const DummyNodeUnder LongEdgeOrderingStrategy = 1 const LongEdgeEqual LongEdgeOrderingStrategy = 2
![]() |
The pages are generated with Golds v0.8.7. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |