39 lines
778 B
C
39 lines
778 B
C
|
/**
|
||
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
||
|
*
|
||
|
* This source code is licensed under the MIT license found in the
|
||
|
* LICENSE file in the root directory of this source tree.
|
||
|
*/
|
||
|
|
||
|
// -*- c++ -*-
|
||
|
|
||
|
// I/O code for indexes
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
|
||
|
|
||
|
namespace faiss {
|
||
|
|
||
|
struct Index;
|
||
|
struct IndexIVF;
|
||
|
struct VectorTransform;
|
||
|
|
||
|
|
||
|
/* cloning functions */
|
||
|
Index *clone_index (const Index *);
|
||
|
|
||
|
/** Cloner class, useful to override classes with other cloning
|
||
|
* functions. The cloning function above just calls
|
||
|
* Cloner::clone_Index. */
|
||
|
struct Cloner {
|
||
|
virtual VectorTransform *clone_VectorTransform (const VectorTransform *);
|
||
|
virtual Index *clone_Index (const Index *);
|
||
|
virtual IndexIVF *clone_IndexIVF (const IndexIVF *);
|
||
|
virtual ~Cloner() {}
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
} // namespace faiss
|