1 /** 2 Mirror _boolobject.h 3 */ 4 module deimos.python.boolobject; 5 6 import deimos.python.pyport; 7 import deimos.python.object; 8 import deimos.python.intobject; 9 import deimos.python.longintrepr; 10 11 extern(C): 12 // Python-header-file: Include/boolobject.h: 13 14 version(Python_3_0_Or_Later) { 15 }else{ 16 alias PyIntObject PyBoolObject; 17 } 18 19 /// _ 20 mixin(PyAPI_DATA!"PyTypeObject PyBool_Type"); 21 22 // D translation of C macro: 23 /// _ 24 int PyBool_Check()(PyObject* x) { 25 return x.ob_type == &PyBool_Type; 26 } 27 28 version(Python_3_0_Or_Later) { 29 mixin(PyAPI_DATA!"PyLongObject _Py_FalseStruct"); 30 mixin(PyAPI_DATA!"PyLongObject _Py_TrueStruct"); 31 }else { 32 mixin(PyAPI_DATA!"PyIntObject _Py_ZeroStruct"); 33 mixin(PyAPI_DATA!"PyIntObject _Py_TrueStruct"); 34 } 35 36 /// _ 37 @property Borrowed!PyObject* Py_True()() { 38 return cast(Borrowed!PyObject*) &_Py_TrueStruct; 39 } 40 /// _ 41 @property Borrowed!PyObject* Py_False()() { 42 version(Python_3_0_Or_Later) { 43 return cast(Borrowed!PyObject*) &_Py_FalseStruct; 44 }else{ 45 return cast(Borrowed!PyObject*) &_Py_ZeroStruct; 46 } 47 } 48 49 /** Function to return a bool from a C long */ 50 PyObject* PyBool_FromLong(C_long); 51 52