aboutsummaryrefslogtreecommitdiff
path: root/commitgraph/bloom/contain.go
blob: 331b7687e343607c9e486b75d274aa7ce857738f (about) (plain) (blame)
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
package bloom

// MightContain reports whether the Bloom filter may contain the given path.
//
// Evaluated against the full path and each of its directory prefixes. A true
// result indicates a possible match; false means the path definitely did not
// change.
func (f *Filter) MightContain(path []byte) (bool, error) {
	if len(f.Data) == 0 {
		return false, nil
	}

	keys, err := keyvec(path, f)
	if err != nil {
		return false, err
	}

	for i := range keys {
		if filterContainsKey(f, keys[i]) {
			return true, nil
		}
	}

	return false, nil
}