1 /** 2 Mirror _structmember.h 3 4 Interface to map C struct members to Python object attributes 5 */ 6 module deimos.python.structmember; 7 8 import deimos.python.pyport; 9 import deimos.python.object; 10 11 extern(C): 12 // Python-header-file: Include/structmember.h: 13 14 /// _ 15 struct PyMemberDef { 16 /** Current version, use this */ 17 char* name; 18 /// _ 19 int type; 20 /// _ 21 Py_ssize_t offset; 22 /// _ 23 int flags; 24 /// _ 25 char* doc; 26 } 27 28 /** Types */ 29 enum T_SHORT = 0; 30 /// ditto 31 enum T_INT = 1; 32 /// ditto 33 enum T_LONG = 2; 34 /// ditto 35 enum T_FLOAT = 3; 36 /// ditto 37 enum T_DOUBLE = 4; 38 /// ditto 39 enum T_STRING = 5; 40 /// ditto 41 enum T_OBJECT = 6; 42 /// ditto 43 enum T_CHAR = 7; 44 /// ditto 45 enum T_BYTE = 8; 46 /// ditto 47 enum T_UBYTE = 9; 48 /// ditto 49 enum T_USHORT = 10; 50 /// ditto 51 enum T_UINT = 11; 52 /// ditto 53 enum T_ULONG = 12; 54 /// ditto 55 enum T_STRING_INPLACE = 13; 56 version(Python_2_6_Or_Later){ 57 /// Availability: >= 2.6 58 enum T_BOOL = 14; 59 } 60 /// _ 61 enum T_OBJECT_EX = 16; 62 version(Python_2_5_Or_Later){ 63 /// Availability: >= 2.5 64 enum T_LONGLONG = 17; 65 /// Availability: >= 2.5 66 enum T_ULONGLONG = 18; 67 } 68 version(Python_2_6_Or_Later){ 69 /// Availability: >= 2.6 70 enum T_PYSSIZET = 19; 71 } 72 version(Python_3_2_Or_Later) { 73 /// Availability: >= 3.2 74 enum T_NONE = 20; 75 } 76 77 /// _ 78 enum READONLY = 1; 79 /// _ 80 alias READONLY RO; 81 /// _ 82 enum READ_RESTRICTED = 2; 83 /// _ 84 enum WRITE_RESTRICTED = 4; 85 /// _ 86 enum RESTRICTED = (READ_RESTRICTED | WRITE_RESTRICTED); 87 88 /// _ 89 PyObject* PyMember_GetOne(const(char)*, PyMemberDef*); 90 /// _ 91 int PyMember_SetOne(char*, PyMemberDef*, PyObject*); 92 93