Documentation
¶
Overview ¶
Package bloomfilter is a simple implementation of a Bloom filter. It uses the hashing algorithms FNV-1a and murmur3.
Example ¶
package main
import (
"fmt"
"math"
"github.com/mkraft/bloomfilter"
)
func main() {
bf := bloomfilter.NewBloomFilter(math.MaxUint16)
bf.Add([]byte("John"))
bf.Add([]byte("Paul"))
bf.Add([]byte("George"))
bf.Add([]byte("Ringo"))
switch bf.IsMember([]byte("Yoko")) {
case bloomfilter.MaybeMember:
panic("Yoko is not a member!")
case bloomfilter.NotMember:
fmt.Println("That is correct.")
}
}
Output: That is correct.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BloomFilter ¶
type BloomFilter struct {
BitVector []bool
// contains filtered or unexported fields
}
BloomFilter holds the state of the Bloom filter instance.
func NewBloomFilter ¶
func NewBloomFilter(size uint64) *BloomFilter
NewBloomFilter creates a new instance of a BloomFilter with the given size.
func (*BloomFilter) Add ¶
func (bf *BloomFilter) Add(element []byte)
Add adds an element to the set.
func (*BloomFilter) IsMember ¶
func (bf *BloomFilter) IsMember(element []byte) MembershipStatus
IsMember tests for the membership of an element in the set and returns a MembershipStatus.
type MembershipStatus ¶
type MembershipStatus int
MembershipStatus contains the constants used to represent the two possible membership states either NotMember or MaybeMember.
const ( // NotMember means the element is definitely not a mamber of the set. NotMember MembershipStatus = iota // MaybeMember means the element may be a member of the set. MaybeMember )
Click to show internal directories.
Click to hide internal directories.