package placement

import 

// clusterExternalConnectedNodes returns the positioned endpoints outside the
// cluster that remain in the cluster nodes' current placement graph. The
// edge-abduction order is significant: callers use the stable first-seen order
// when comparing opposite-side placements.
func clusterExternalConnectedNodes( *layoutgraph.Cluster) []*layoutgraph.Node {
	 := .Nodes[0].Graph
	 := make(map[*layoutgraph.Node]struct{})
	 := make([]*layoutgraph.Node, 0)
	for ,  := range .EdgeAbductions {
		switch {
		case .OriginallyFrom == nil && .OriginallyTo != nil:
			if .CurrentFrom.TopLeft != nil && .CurrentFrom.Graph ==  {
				if ,  := [.CurrentFrom]; ! {
					 = append(, .CurrentFrom)
					[.CurrentFrom] = struct{}{}
				}
			}
		case .OriginallyTo == nil && .OriginallyFrom != nil:
			if .CurrentTo.TopLeft != nil && .CurrentTo.Graph ==  {
				if ,  := [.CurrentTo]; ! {
					 = append(, .CurrentTo)
					[.CurrentTo] = struct{}{}
				}
			}
		}
	}
	return 
}