blob: 18bb0a3dbaa01d277ec162a9978a7717c06091d9 [file] [log] [blame]
#pragma once
#include <pybind11/pybind11.h>
#include "c10/util/Registry.h"
namespace caffe2 {
namespace python {
namespace py = pybind11;
struct PybindAddition {
PybindAddition() {}
PybindAddition(py::module&) {}
virtual ~PybindAddition(){};
};
C10_DECLARE_REGISTRY(PybindAdditionRegistry, PybindAddition, py::module&);
#define REGISTER_PYBIND_ADDITION(funcname) \
namespace { \
struct funcname##Impl : public PybindAddition { \
funcname##Impl(py::module& m) { \
funcname(m); \
} \
}; \
C10_REGISTER_CLASS(PybindAdditionRegistry, funcname##Impl, funcname##Impl); \
}
} // namespace python
} // namespace caffe2