mirror of https://github.com/tidwall/tile38.git
cfc65a13f6
This commit includes updates that affects the build, testing, and deployment of Tile38. - The root level build.sh has been broken up into multiple scripts and placed in the "scripts" directory. - The vendor directory has been updated to follow the Go modules rules, thus `make` should work on isolated environments. Also some vendored packages may have been updated to a later version, if needed. - The Makefile has been updated to allow for making single binaries such as `make tile38-server`. There is some scaffolding during the build process, so from now on all binaries should be made using make. For example, to run a development version of the tile38-cli binary, do this: make tile38-cli && ./tile38-cli not this: go run cmd/tile38-cli/main.go - Travis.CI docker push script has been updated to address a change to Docker's JSON repo meta output, which in turn fixes a bug where new Tile38 versions were not being properly pushed to Docker |
||
---|---|---|
.. | ||
LICENSE | ||
README.md | ||
btree.go |
README.md
tinybtree
Just an itsy bitsy b-tree.
Usage
Keys are strings, values are interfaces.
Functions
Get(key string) (value interface{}, gotten bool)
Set(key string, value interface{}) (prev interface{}, replaced bool)
Delete(key string) (prev interface{}, deleted bool)
Scan(iter func(key string, value interface{}) bool)
Ascend(pivot string, iter func(key string, value interface{}) bool)
Descend(pivot string, iter func(key string, value interface{}) bool)
Example
// Create a btree
var tr tinybtree.BTree
// Set a key. Returns the previous value and ok a previous value exists.
prev, ok := tr.Set("hello", "world")
// Get a key. Returns the value and ok if the value exists.
value, ok := tr.Get("hello")
// Delete a key. Returns the deleted value and ok if the previous value exists.
prev, ok := tr.Delete("hello")
Contact
Josh Baker @tidwall
License
tinybtree
source code is available under the MIT License.