Skip to content

Commit 6e803ec

Browse files
index_idmap.go: go binding added
IndexIDMap was missing from the go bindings, even though is is important to wrap a flat index in if addWithID functionality is required.
1 parent e5194f4 commit 6e803ec

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

index_idmap.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package faiss
2+
3+
/*
4+
#include <faiss/c_api/MetaIndexes_c.h>
5+
*/
6+
import "C"
7+
import (
8+
"errors"
9+
)
10+
11+
type IndexIDMapWrapper struct {
12+
Index
13+
cpointer **C.FaissIndex
14+
}
15+
16+
func NewIndexIDMap(index *IndexFlat) (*IndexIDMapWrapper, error) {
17+
var indexMapPointer *C.FaissIndexIDMap
18+
var pointerToIndexMapPointer **C.FaissIndexIDMap
19+
pointerToIndexMapPointer = &indexMapPointer
20+
wrapper := IndexIDMapWrapper{cpointer: &indexMapPointer}
21+
if C.faiss_IndexIDMap_new(pointerToIndexMapPointer, index.cPtr()) != 0 {
22+
return nil, errors.New("Error occurred while initializing IndexIDMapWrapper")
23+
}
24+
wrapper.Index = &faissIndex{idx: *wrapper.cpointer}
25+
return &wrapper, nil
26+
}

0 commit comments

Comments
 (0)