@@ -27,6 +27,11 @@ extern "C" {
27
27
pub fn PyModule_GetFilenameObject ( arg1 : * mut PyObject ) -> * mut PyObject ;
28
28
pub fn PyModule_GetDef ( arg1 : * mut PyObject ) -> * mut PyModuleDef ;
29
29
pub fn PyModule_GetState ( arg1 : * mut PyObject ) -> * mut c_void ;
30
+
31
+ #[ cfg( Py_3_5 ) ]
32
+ pub fn PyModuleDef_Init ( arg1 : * mut PyModuleDef ) -> * mut PyObject ;
33
+ #[ cfg( Py_3_5 ) ]
34
+ pub static mut PyModuleDef_Type : PyTypeObject ;
30
35
}
31
36
32
37
#[ repr( C ) ]
@@ -48,6 +53,23 @@ pub const PyModuleDef_HEAD_INIT: PyModuleDef_Base = PyModuleDef_Base {
48
53
m_copy : 0 as * mut PyObject
49
54
} ;
50
55
56
+ #[ repr( C ) ]
57
+ #[ derive( Copy ) ]
58
+ #[ cfg( Py_3_5 ) ]
59
+ pub struct PyModuleDef_Slot {
60
+ pub slot : c_int ,
61
+ pub value : * mut c_void ,
62
+ }
63
+ #[ cfg( Py_3_5 ) ]
64
+ impl Clone for PyModuleDef_Slot {
65
+ fn clone ( & self ) -> PyModuleDef_Slot { * self }
66
+ }
67
+
68
+ #[ cfg( Py_3_5 ) ]
69
+ pub const Py_mod_create : c_int = 1 ;
70
+ #[ cfg( Py_3_5 ) ]
71
+ pub const Py_mod_exec : c_int = 2 ;
72
+
51
73
#[ repr( C ) ]
52
74
#[ derive( Copy ) ]
53
75
pub struct PyModuleDef {
@@ -56,7 +78,10 @@ pub struct PyModuleDef {
56
78
pub m_doc : * const c_char ,
57
79
pub m_size : Py_ssize_t ,
58
80
pub m_methods : * mut PyMethodDef ,
81
+ #[ cfg( not( Py_3_5 ) ) ]
59
82
pub m_reload : Option < inquiry > ,
83
+ #[ cfg( Py_3_5 ) ]
84
+ pub m_slots : * mut PyModuleDef_Slot ,
60
85
pub m_traverse : Option < traverseproc > ,
61
86
pub m_clear : Option < inquiry > ,
62
87
pub m_free : Option < freefunc > ,
@@ -65,4 +90,28 @@ impl Clone for PyModuleDef {
65
90
fn clone ( & self ) -> PyModuleDef { * self }
66
91
}
67
92
93
+ #[ cfg( not( Py_3_5 ) ) ]
94
+ pub const PyModuleDef_INIT : PyModuleDef = PyModuleDef {
95
+ m_base : PyModuleDef_HEAD_INIT ,
96
+ m_name : 0 as * const _ ,
97
+ m_doc : 0 as * const _ ,
98
+ m_size : 0 ,
99
+ m_methods : 0 as * mut _ ,
100
+ m_reload : None ,
101
+ m_traverse : None ,
102
+ m_clear : None ,
103
+ m_free : None
104
+ } ;
68
105
106
+ #[ cfg( Py_3_5 ) ]
107
+ pub const PyModuleDef_INIT : PyModuleDef = PyModuleDef {
108
+ m_base : PyModuleDef_HEAD_INIT ,
109
+ m_name : 0 as * const _ ,
110
+ m_doc : 0 as * const _ ,
111
+ m_size : 0 ,
112
+ m_methods : 0 as * mut _ ,
113
+ m_slots : 0 as * mut _ ,
114
+ m_traverse : None ,
115
+ m_clear : None ,
116
+ m_free : None
117
+ } ;
0 commit comments