gopkg.in/alecthomas/gometalinter.v3@v3.0.0/_linters/src/github.com/mibk/dupl/job/buildtree.go (about)

     1  package job
     2  
     3  import (
     4  	"github.com/mibk/dupl/suffixtree"
     5  	"github.com/mibk/dupl/syntax"
     6  )
     7  
     8  func BuildTree(schan chan []*syntax.Node) (t *suffixtree.STree, d *[]*syntax.Node, done chan bool) {
     9  	t = suffixtree.New()
    10  	data := make([]*syntax.Node, 0, 100)
    11  	done = make(chan bool)
    12  	go func() {
    13  		for seq := range schan {
    14  			data = append(data, seq...)
    15  			for _, node := range seq {
    16  				t.Update(node)
    17  			}
    18  		}
    19  		done <- true
    20  	}()
    21  	return t, &data, done
    22  }