@@ -240,7 +240,8 @@ class PyHNSWLibIndex : public PyVecSimIndex {
240240
241241public:
242242 explicit PyHNSWLibIndex (const HNSWParams &hnsw_params) {
243- VecSimParams params = {.algo = VecSimAlgo_HNSWLIB, .hnswParams = hnsw_params};
243+ VecSimParams params = {.algo = VecSimAlgo_HNSWLIB,
244+ .algoParams = {.hnswParams = HNSWParams{hnsw_params}}};
244245 this ->index = std::shared_ptr<VecSimIndex>(VecSimIndex_New (¶ms), VecSimIndex_Free);
245246 }
246247
@@ -434,7 +435,8 @@ class PyTiered_HNSWIndex : public PyTieredIndex {
434435 const TieredHNSWParams &tiered_hnsw_params) {
435436
436437 // Create primaryIndexParams and specific params for hnsw tiered index.
437- VecSimParams primary_index_params = {.algo = VecSimAlgo_HNSWLIB, .hnswParams = hnsw_params};
438+ VecSimParams primary_index_params = {.algo = VecSimAlgo_HNSWLIB,
439+ .algoParams = {.hnswParams = HNSWParams{hnsw_params}}};
438440
439441 // create TieredIndexParams
440442 TieredIndexParams tiered_params = TieredIndexParams_Init ();
@@ -443,7 +445,8 @@ class PyTiered_HNSWIndex : public PyTieredIndex {
443445 tiered_params.specificParams .tieredHnswParams = tiered_hnsw_params;
444446
445447 // create VecSimParams for TieredIndexParams
446- VecSimParams params = {.algo = VecSimAlgo_TIERED, .tieredParams = tiered_params};
448+ VecSimParams params = {.algo = VecSimAlgo_TIERED,
449+ .algoParams = {.tieredParams = TieredIndexParams{tiered_params}}};
447450
448451 this ->index = std::shared_ptr<VecSimIndex>(VecSimIndex_New (¶ms), VecSimIndex_Free);
449452 // Set the created tiered index in the index external context.
@@ -457,7 +460,8 @@ class PyTiered_HNSWIndex : public PyTieredIndex {
457460class PyBFIndex : public PyVecSimIndex {
458461public:
459462 explicit PyBFIndex (const BFParams &bf_params) {
460- VecSimParams params = {.algo = VecSimAlgo_BF, .bfParams = bf_params};
463+ VecSimParams params = {.algo = VecSimAlgo_BF,
464+ .algoParams = {.bfParams = BFParams{bf_params}}};
461465 this ->index = std::shared_ptr<VecSimIndex>(VecSimIndex_New (¶ms), VecSimIndex_Free);
462466 }
463467};
@@ -511,11 +515,15 @@ PYBIND11_MODULE(VecSim, m) {
511515 .def (py::init ())
512516 .def_readwrite (" swapJobThreshold" , &TieredHNSWParams::swapJobThreshold);
513517
518+ py::class_<AlgoParams>(m, " AlgoParams" )
519+ .def (py::init ())
520+ .def_readwrite (" hnswParams" , &AlgoParams::hnswParams)
521+ .def_readwrite (" bfParams" , &AlgoParams::bfParams);
522+
514523 py::class_<VecSimParams>(m, " VecSimParams" )
515524 .def (py::init ())
516525 .def_readwrite (" algo" , &VecSimParams::algo)
517- .def_readwrite (" hnswParams" , &VecSimParams::hnswParams)
518- .def_readwrite (" bfParams" , &VecSimParams::bfParams);
526+ .def_readwrite (" algoParams" , &VecSimParams::algoParams);
519527
520528 py::class_<VecSimQueryParams> queryParams (m, " VecSimQueryParams" );
521529
0 commit comments