1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
use libc::{c_char, c_int, c_void}; use methodobject::PyMethodDef; use object::*; use pyport::Py_ssize_t; #[cfg_attr(windows, link(name = "pythonXY"))] extern "C" { pub static mut PyModule_Type: PyTypeObject; } #[inline(always)] pub unsafe fn PyModule_Check(op: *mut PyObject) -> c_int { PyObject_TypeCheck(op, &mut PyModule_Type) } #[inline(always)] pub unsafe fn PyModule_CheckExact(op: *mut PyObject) -> c_int { (Py_TYPE(op) == &mut PyModule_Type) as c_int } #[cfg_attr(windows, link(name = "pythonXY"))] extern "C" { pub fn PyModule_NewObject(name: *mut PyObject) -> *mut PyObject; pub fn PyModule_New(name: *const c_char) -> *mut PyObject; pub fn PyModule_GetDict(arg1: *mut PyObject) -> *mut PyObject; pub fn PyModule_GetNameObject(arg1: *mut PyObject) -> *mut PyObject; pub fn PyModule_GetName(arg1: *mut PyObject) -> *const c_char; #[deprecated( since = "0.3.1", note = "Deprecated since Python 3.2; use PyModule_GetFilenameObject() instead" )] pub fn PyModule_GetFilename(arg1: *mut PyObject) -> *const c_char; pub fn PyModule_GetFilenameObject(arg1: *mut PyObject) -> *mut PyObject; pub fn PyModule_GetDef(arg1: *mut PyObject) -> *mut PyModuleDef; pub fn PyModule_GetState(arg1: *mut PyObject) -> *mut c_void; #[cfg(Py_3_5)] pub fn PyModuleDef_Init(arg1: *mut PyModuleDef) -> *mut PyObject; #[cfg(Py_3_5)] pub static mut PyModuleDef_Type: PyTypeObject; } #[repr(C)] #[derive(Copy)] pub struct PyModuleDef_Base { pub ob_base: PyObject, pub m_init: Option<extern "C" fn() -> *mut PyObject>, pub m_index: Py_ssize_t, pub m_copy: *mut PyObject, } impl Clone for PyModuleDef_Base { fn clone(&self) -> PyModuleDef_Base { *self } } pub const PyModuleDef_HEAD_INIT: PyModuleDef_Base = PyModuleDef_Base { ob_base: PyObject_HEAD_INIT, m_init: None, m_index: 0, m_copy: 0 as *mut PyObject, }; #[repr(C)] #[derive(Copy)] #[cfg(Py_3_5)] pub struct PyModuleDef_Slot { pub slot: c_int, pub value: *mut c_void, } #[cfg(Py_3_5)] impl Clone for PyModuleDef_Slot { fn clone(&self) -> PyModuleDef_Slot { *self } } #[cfg(Py_3_5)] pub const Py_mod_create: c_int = 1; #[cfg(Py_3_5)] pub const Py_mod_exec: c_int = 2; #[repr(C)] #[derive(Copy)] pub struct PyModuleDef { pub m_base: PyModuleDef_Base, pub m_name: *const c_char, pub m_doc: *const c_char, pub m_size: Py_ssize_t, pub m_methods: *mut PyMethodDef, #[cfg(not(Py_3_5))] pub m_reload: Option<inquiry>, #[cfg(Py_3_5)] pub m_slots: *mut PyModuleDef_Slot, pub m_traverse: Option<traverseproc>, pub m_clear: Option<inquiry>, pub m_free: Option<freefunc>, } impl Clone for PyModuleDef { fn clone(&self) -> PyModuleDef { *self } } #[cfg(not(Py_3_5))] pub const PyModuleDef_INIT: PyModuleDef = PyModuleDef { m_base: PyModuleDef_HEAD_INIT, m_name: 0 as *const _, m_doc: 0 as *const _, m_size: 0, m_methods: 0 as *mut _, m_reload: None, m_traverse: None, m_clear: None, m_free: None, }; #[cfg(Py_3_5)] pub const PyModuleDef_INIT: PyModuleDef = PyModuleDef { m_base: PyModuleDef_HEAD_INIT, m_name: 0 as *const _, m_doc: 0 as *const _, m_size: 0, m_methods: 0 as *mut _, m_slots: 0 as *mut _, m_traverse: None, m_clear: None, m_free: None, };