Documentation ¶
Overview ¶
Copyright 2018 the u-root Authors. All rights reserved Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. Package hashmap implements persistent hashmap.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Equal ¶
type Equal func(k1, k2 interface{}) bool
Equal is the type of a function that reports whether two keys are equal.
type Hash ¶
type Hash func(k interface{}) uint32
Hash is the type of a function that returns the hash code of a key.
type Iterator ¶
type Iterator interface { // Elem returns the current key-value pair. Elem() (interface{}, interface{}) // HasElem returns whether the iterator is pointing to an element. HasElem() bool // Next moves the iterator to the next position. Next() }
Iterator is an iterator over map elements. It can be used like this:
for it := m.Iterator(); it.HasElem(); it.Next() { key, value := it.Elem() // do something with elem... }
type Map ¶
type Map interface { Len() int // Index returns whether there is a value associated with the given key, and // that value or nil. Index(k interface{}) (interface{}, bool) // Assoc returns an almost identical map, with the given key associated with // the given value. Assoc(k, v interface{}) Map // Dissoc returns an almost identical map, with the given key associated // with no value. Dissoc(k interface{}) Map // Iterator returns an iterator over the map. Iterator() Iterator }
Map is a persistent associative data structure mapping keys to values. It is immutable, and supports near-O(1) operations to create modified version of the map that shares the underlying data structure. Because it is immutable, all of its methods are safe for concurrent use.