Dont create entries when selecting

This commit is contained in:
Mike Farah
2021-02-11 10:58:40 +11:00
parent c6efd5519b
commit 5c73132c8e
4 changed files with 45 additions and 24 deletions
+19 -7
View File
@@ -1,18 +1,30 @@
package yqlib
import "container/list"
import (
"container/list"
"github.com/jinzhu/copier"
)
type Context struct {
MatchingNodes *list.List
Variables map[string]*list.List
MatchingNodes *list.List
Variables map[string]*list.List
DontAutoCreate bool
}
func (n *Context) SingleChildContext(candidate *CandidateNode) Context {
elMap := list.New()
elMap.PushBack(candidate)
return Context{MatchingNodes: elMap, Variables: n.Variables}
list := list.New()
list.PushBack(candidate)
return n.ChildContext(list)
}
func (n *Context) ChildContext(results *list.List) Context {
return Context{MatchingNodes: results, Variables: n.Variables}
clone := Context{}
err := copier.Copy(&clone, n)
if err != nil {
log.Error("Error cloning context :(")
panic(err)
}
clone.MatchingNodes = results
return clone
}