mirror of
https://github.com/open-policy-agent/opa.git
synced 2026-08-12 19:32:48 -06:00
a179a24c48
All packages, except for `cmd` and `internal`, have been moved into a new `v1` root package. Old packages are kept for backwards-compatibility reasons. All contained code is replaced with simple type aliases and proxy functions to `v1` implementations. Old packages default to the Rego v0 syntax, new `v1` packages default to the Rego v1 syntax. Signed-off-by: Johan Fylling <johan.dev@fylling.se>
35 lines
1.1 KiB
Go
35 lines
1.1 KiB
Go
// Copyright 2016 The OPA Authors. All rights reserved.
|
|
// Use of this source code is governed by an Apache2
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package util
|
|
|
|
import v1 "github.com/open-policy-agent/opa/v1/util"
|
|
|
|
// Traversal defines a basic interface to perform traversals.
|
|
type Traversal = v1.Traversal
|
|
|
|
// Equals should return true if node "u" equals node "v".
|
|
type Equals = v1.Equals
|
|
|
|
// Iter should return true to indicate stop.
|
|
type Iter = v1.Iter
|
|
|
|
// DFS performs a depth first traversal calling f for each node starting from u.
|
|
// If f returns true, traversal stops and DFS returns true.
|
|
func DFS(t Traversal, f Iter, u T) bool {
|
|
return v1.DFS(t, f, u)
|
|
}
|
|
|
|
// BFS performs a breadth first traversal calling f for each node starting from
|
|
// u. If f returns true, traversal stops and BFS returns true.
|
|
func BFS(t Traversal, f Iter, u T) bool {
|
|
return v1.BFS(t, f, u)
|
|
}
|
|
|
|
// DFSPath returns a path from node a to node z found by performing
|
|
// a depth first traversal. If no path is found, an empty slice is returned.
|
|
func DFSPath(t Traversal, eq Equals, a, z T) []T {
|
|
return v1.DFSPath(t, eq, a, z)
|
|
}
|