yq/pkg/yqlib/treeops/operator_union.go

20 lines
538 B
Go
Raw Normal View History

2020-10-17 11:10:47 +00:00
package treeops
import "github.com/elliotchance/orderedmap"
func UnionOperator(d *dataTreeNavigator, matchingNodes *orderedmap.OrderedMap, pathNode *PathTreeNode) (*orderedmap.OrderedMap, error) {
lhs, err := d.getMatchingNodes(matchingNodes, pathNode.Lhs)
if err != nil {
return nil, err
}
rhs, err := d.getMatchingNodes(matchingNodes, pathNode.Rhs)
if err != nil {
return nil, err
}
for el := rhs.Front(); el != nil; el = el.Next() {
node := el.Value.(*CandidateNode)
lhs.Set(node.GetKey(), node)
}
return lhs, nil
}