17db96d56Sopenharmony_ci/* Boolean object interface */
27db96d56Sopenharmony_ci
37db96d56Sopenharmony_ci#ifndef Py_BOOLOBJECT_H
47db96d56Sopenharmony_ci#define Py_BOOLOBJECT_H
57db96d56Sopenharmony_ci#ifdef __cplusplus
67db96d56Sopenharmony_ciextern "C" {
77db96d56Sopenharmony_ci#endif
87db96d56Sopenharmony_ci
97db96d56Sopenharmony_ci
107db96d56Sopenharmony_ciPyAPI_DATA(PyTypeObject) PyBool_Type;
117db96d56Sopenharmony_ci
127db96d56Sopenharmony_ci#define PyBool_Check(x) Py_IS_TYPE(x, &PyBool_Type)
137db96d56Sopenharmony_ci
147db96d56Sopenharmony_ci/* Py_False and Py_True are the only two bools in existence.
157db96d56Sopenharmony_ciDon't forget to apply Py_INCREF() when returning either!!! */
167db96d56Sopenharmony_ci
177db96d56Sopenharmony_ci/* Don't use these directly */
187db96d56Sopenharmony_ciPyAPI_DATA(PyLongObject) _Py_FalseStruct;
197db96d56Sopenharmony_ciPyAPI_DATA(PyLongObject) _Py_TrueStruct;
207db96d56Sopenharmony_ci
217db96d56Sopenharmony_ci/* Use these macros */
227db96d56Sopenharmony_ci#define Py_False ((PyObject *) &_Py_FalseStruct)
237db96d56Sopenharmony_ci#define Py_True ((PyObject *) &_Py_TrueStruct)
247db96d56Sopenharmony_ci
257db96d56Sopenharmony_ci// Test if an object is the True singleton, the same as "x is True" in Python.
267db96d56Sopenharmony_ciPyAPI_FUNC(int) Py_IsTrue(PyObject *x);
277db96d56Sopenharmony_ci#define Py_IsTrue(x) Py_Is((x), Py_True)
287db96d56Sopenharmony_ci
297db96d56Sopenharmony_ci// Test if an object is the False singleton, the same as "x is False" in Python.
307db96d56Sopenharmony_ciPyAPI_FUNC(int) Py_IsFalse(PyObject *x);
317db96d56Sopenharmony_ci#define Py_IsFalse(x) Py_Is((x), Py_False)
327db96d56Sopenharmony_ci
337db96d56Sopenharmony_ci/* Macros for returning Py_True or Py_False, respectively */
347db96d56Sopenharmony_ci#define Py_RETURN_TRUE return Py_NewRef(Py_True)
357db96d56Sopenharmony_ci#define Py_RETURN_FALSE return Py_NewRef(Py_False)
367db96d56Sopenharmony_ci
377db96d56Sopenharmony_ci/* Function to return a bool from a C long */
387db96d56Sopenharmony_ciPyAPI_FUNC(PyObject *) PyBool_FromLong(long);
397db96d56Sopenharmony_ci
407db96d56Sopenharmony_ci#ifdef __cplusplus
417db96d56Sopenharmony_ci}
427db96d56Sopenharmony_ci#endif
437db96d56Sopenharmony_ci#endif /* !Py_BOOLOBJECT_H */
44