1*da0073e9SAndroid Build Coastguard Worker #pragma once 2*da0073e9SAndroid Build Coastguard Worker 3*da0073e9SAndroid Build Coastguard Worker #include <torch/csrc/python_headers.h> 4*da0073e9SAndroid Build Coastguard Worker 5*da0073e9SAndroid Build Coastguard Worker #include <c10/core/QScheme.h> 6*da0073e9SAndroid Build Coastguard Worker 7*da0073e9SAndroid Build Coastguard Worker #include <string> 8*da0073e9SAndroid Build Coastguard Worker 9*da0073e9SAndroid Build Coastguard Worker constexpr int QSCHEME_NAME_LEN = 64; 10*da0073e9SAndroid Build Coastguard Worker 11*da0073e9SAndroid Build Coastguard Worker struct THPQScheme { 12*da0073e9SAndroid Build Coastguard Worker PyObject_HEAD at::QScheme qscheme; 13*da0073e9SAndroid Build Coastguard Worker // NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays,modernize-avoid-c-arrays) 14*da0073e9SAndroid Build Coastguard Worker char name[QSCHEME_NAME_LEN + 1]; 15*da0073e9SAndroid Build Coastguard Worker }; 16*da0073e9SAndroid Build Coastguard Worker 17*da0073e9SAndroid Build Coastguard Worker extern PyTypeObject THPQSchemeType; 18*da0073e9SAndroid Build Coastguard Worker THPQScheme_Check(PyObject * obj)19*da0073e9SAndroid Build Coastguard Workerinline bool THPQScheme_Check(PyObject* obj) { 20*da0073e9SAndroid Build Coastguard Worker return Py_TYPE(obj) == &THPQSchemeType; 21*da0073e9SAndroid Build Coastguard Worker } 22*da0073e9SAndroid Build Coastguard Worker 23*da0073e9SAndroid Build Coastguard Worker PyObject* THPQScheme_New(at::QScheme qscheme, const std::string& name); 24*da0073e9SAndroid Build Coastguard Worker 25*da0073e9SAndroid Build Coastguard Worker void THPQScheme_init(PyObject* module); 26