python27_sys/
moduleobject.rs

1use libc::{c_char, c_int};
2
3use crate::object::*;
4
5#[cfg_attr(windows, link(name = "pythonXY"))]
6extern "C" {
7    pub static mut PyModule_Type: PyTypeObject;
8
9    pub fn PyModule_New(name: *const c_char) -> *mut PyObject;
10    pub fn PyModule_GetDict(module: *mut PyObject) -> *mut PyObject;
11    pub fn PyModule_GetName(module: *mut PyObject) -> *mut c_char;
12    pub fn PyModule_GetFilename(module: *mut PyObject) -> *mut c_char;
13    ignore! {
14        fn _PyModule_Clear(arg1: *mut PyObject);
15    }
16}
17
18#[inline(always)]
19pub unsafe fn PyModule_Check(op: *mut PyObject) -> c_int {
20    PyObject_TypeCheck(op, &mut PyModule_Type)
21}
22
23#[inline(always)]
24pub unsafe fn PyModule_CheckExact(op: *mut PyObject) -> c_int {
25    let u: *mut PyTypeObject = &mut PyModule_Type;
26    (Py_TYPE(op) == u) as c_int
27}