python27_sys/
boolobject.rs

1use libc::{c_int, c_long};
2
3use crate::intobject::PyIntObject;
4use crate::object::*;
5
6pub type PyBoolObject = PyIntObject;
7
8#[cfg_attr(windows, link(name = "pythonXY"))]
9extern "C" {
10    pub static mut PyBool_Type: PyTypeObject;
11    static mut _Py_ZeroStruct: PyIntObject;
12    static mut _Py_TrueStruct: PyIntObject;
13    pub fn PyBool_FromLong(arg1: c_long) -> *mut PyObject;
14}
15
16#[inline(always)]
17pub unsafe fn PyBool_Check(op: *mut PyObject) -> c_int {
18    let u: *mut PyTypeObject = &mut PyBool_Type;
19    (Py_TYPE(op) == u) as c_int
20}
21
22#[inline(always)]
23pub unsafe fn Py_False() -> *mut PyObject {
24    &mut _Py_ZeroStruct as *mut PyBoolObject as *mut PyObject
25}
26
27#[inline(always)]
28pub unsafe fn Py_True() -> *mut PyObject {
29    &mut _Py_TrueStruct as *mut PyBoolObject as *mut PyObject
30}