20 #define FAISS_DECLARE_CLASS(clazz) \
21 typedef struct Faiss ## clazz ## _H Faiss ## clazz;
25 #define FAISS_DECLARE_CLASS_INHERITED(clazz, parent) \
26 typedef struct Faiss ## parent ## _H Faiss ## clazz;
31 #define FAISS_DECLARE_INDEX_DOWNCAST(clazz) \
32 Faiss ## clazz * faiss_ ## clazz ## _cast (FaissIndex*);
36 #define FAISS_DECLARE_GETTER(clazz, ty, name) \
37 ty faiss_ ## clazz ## _ ## name (const Faiss ## clazz *);
41 #define FAISS_DECLARE_SETTER(clazz, ty, name) \
42 void faiss_ ## clazz ## _set_ ## name (Faiss ## clazz *, ty);
45 #define FAISS_DECLARE_GETTER_SETTER(clazz, ty, name) \
46 FAISS_DECLARE_GETTER(clazz, ty, name) \
47 FAISS_DECLARE_SETTER(clazz, ty, name)
51 #define FAISS_DECLARE_DESTRUCTOR(clazz) \
52 void faiss_ ## clazz ## _free (Faiss ## clazz *obj);