wlf f051014ac2 提交正常运行的所有代码 | 1 year ago | |
---|---|---|
.. | ||
.travis.yml | 1 year ago | |
LICENSE | 1 year ago | |
README.md | 1 year ago | |
edges.go | 1 year ago | |
go.mod | 1 year ago | |
go.sum | 1 year ago | |
iradix.go | 1 year ago | |
iter.go | 1 year ago | |
node.go | 1 year ago | |
raw_iter.go | 1 year ago |
Provides the iradix
package that implements an immutable radix tree.
The package only provides a single Tree
implementation, optimized for sparse nodes.
As a radix tree, it provides the following:
A tree supports using a transaction to batch multiple updates (insert, delete) in a more efficient manner than performing each operation one at a time.
For a mutable variant, see go-radix.
The full documentation is available on Godoc.
Below is a simple example of usage
// Create a tree
r := iradix.New()
r, _, _ = r.Insert([]byte("foo"), 1)
r, _, _ = r.Insert([]byte("bar"), 2)
r, _, _ = r.Insert([]byte("foobar"), 2)
// Find the longest prefix match
m, _, _ := r.Root().LongestPrefix([]byte("foozip"))
if string(m) != "foo" {
panic("should be foo")
}