func (b bucket) getEmptyEntry() (int, error) {
	for i, fingerprint := range b {
		if fingerprint == nil {
			return i, nil
		}
	}
	return -1, errors.New("full")
}
getEmptyEntry returns the index of the next available entry in the bucket or
an error if it's full.
package boom
import (
	"bytes"
	"encoding/binary"
	"errors"
	"hash"
	"hash/fnv"
	"math"
	"math/rand"
)
const maxNumKicks = 500
type bucket [][]byte
func (b bucket) contains(f []byte) bool {
	return b.indexOf(f) != -1
}
func (b bucket) indexOf(f []byte) int {
	for i, fingerprint := range b {
		if bytes.Equal(f, fingerprint) {
			return i
		}
	}
	return -1
}