diff options
Diffstat (limited to 'examples/go-dashboard/src/github.com/mum4k/termdash/container/traversal.go')
1 files changed, 0 insertions, 86 deletions
diff --git a/examples/go-dashboard/src/github.com/mum4k/termdash/container/traversal.go b/examples/go-dashboard/src/github.com/mum4k/termdash/container/traversal.go deleted file mode 100644 index f728b50ba..000000000 --- a/examples/go-dashboard/src/github.com/mum4k/termdash/container/traversal.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2018 Google Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package container - -import ( - "errors" - "fmt" -) - -// traversal.go provides functions that navigate the container tree. - -// rootCont returns the root container. -func rootCont(c *Container) *Container { - for p := c.parent; p != nil; p = c.parent { - c = p - } - return c -} - -// visitFunc is executed during traversals when node is visited. -// If the visit function returns an error, the traversal terminates and the -// errStr is set to the text of the returned error. -type visitFunc func(*Container) error - -// preOrder performs pre-order DFS traversal on the container tree. -func preOrder(c *Container, errStr *string, visit visitFunc) { - if c == nil || *errStr != "" { - return - } - - if err := visit(c); err != nil { - *errStr = err.Error() - return - } - preOrder(c.first, errStr, visit) - preOrder(c.second, errStr, visit) -} - -// postOrder performs post-order DFS traversal on the container tree. -func postOrder(c *Container, errStr *string, visit visitFunc) { - if c == nil || *errStr != "" { - return - } - - postOrder(c.first, errStr, visit) - postOrder(c.second, errStr, visit) - if err := visit(c); err != nil { - *errStr = err.Error() - return - } -} - -// findID finds container with the provided ID. -// Returns an error of there is no container with the specified ID. -func findID(root *Container, id string) (*Container, error) { - if id == "" { - return nil, errors.New("the container ID must not be empty") - } - - var ( - errStr string - cont *Container - ) - preOrder(root, &errStr, visitFunc(func(c *Container) error { - if c.opts.id == id { - cont = c - } - return nil - })) - if cont == nil { - return nil, fmt.Errorf("cannot find container with ID %q", id) - } - return cont, nil -} |