Skip to content

Instantly share code, notes, and snippets.

@mmore500
Created January 14, 2023 08:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mmore500/71eb2f3f14afb02fba476dd2cea45210 to your computer and use it in GitHub Desktop.
Save mmore500/71eb2f3f14afb02fba476dd2cea45210 to your computer and use it in GitHub Desktop.
_PerfectBacktrackHandleNative.cpp
// cppimport
#include <memory>
#include <pybind11/pybind11.h>
namespace py = pybind11;
struct PerfectBacktrackHandleNative {
py::object parent;
int data;
};
PYBIND11_MODULE(_PerfectBacktrackHandleNative, m) {
py::class_<
PerfectBacktrackHandleNative,
std::unique_ptr<PerfectBacktrackHandleNative>
>(m, "PerfectBacktrackHandleNative")
.def(py::init([]() {
return PerfectBacktrackHandleNative{py::none(), -1};
}))
.def(py::init([](const py::object& parent) {
return PerfectBacktrackHandleNative{parent, -1};
}))
.def(py::init([](const py::object& parent, const int data) {
return PerfectBacktrackHandleNative{parent, data};
}))
.def("CreateDescendant", [](
const py::object& handle
){
return PerfectBacktrackHandleNative{handle, -1};
})
.def("CreateDescendant", [](
const py::object& handle, const int data=-1
){
return PerfectBacktrackHandleNative{handle, data};
})
.def_readonly("parent", &PerfectBacktrackHandleNative::parent)
.def_readonly("data", &PerfectBacktrackHandleNative::data);
}
/*
<%
setup_pybind11(cfg)
cfg['extra_compile_args'] = ['-O3']
%>
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment