aboutsummaryrefslogtreecommitdiff
path: root/internal/hash/hash.go
blob: 861dd908c8aecc3dcdf596c25ac01f71b4120bf4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package hash

import "os"

const (
	Magic   = 0x061561
	Version = 2
)

type Hash struct {
	file      *os.File
	BSize     uint                // hash table bucket size
	FFactor   uint                // desired density within the hash table
	CacheSize uint                // suggested maximum size in bytes
	LOrder    uint                // byte order for integers in metadata
	Hash      func([]byte) uint32 // user defined hash function
}

func New(file *os.File) *Hash {
	return &Hash{
		file: file,
		Hash: defaultHash,
	}
}

func (h *Hash) Close() error {
	return h.file.Close()
}

func (h *Hash) Del(key []byte, flags uint) error {
	panic("not implemented")
}

func (h *Hash) Fd() uintptr {
	return h.file.Fd()
}

func (h *Hash) Get(key []byte, flags uint) ([]byte, error) {
	panic("not implemented")
}

func (h *Hash) Put(key []byte, data []byte, flags uint) error {
	panic("not implemented")
}

func (h *Hash) Sync(flags uint) error {
	panic("not implemented")
}

func (h *Hash) Seq(key []byte, flags uint) ([]byte, error) {
	panic("not implemented")
}