1use crate::object::*;
2use std::os::raw::{c_double, c_int};
3use std::ptr::addr_of_mut;
4
5#[cfg(Py_LIMITED_API)]
6opaque_struct!(PyFloatObject);
8
9#[cfg_attr(windows, link(name = "pythonXY"))]
10extern "C" {
11 #[cfg_attr(PyPy, link_name = "PyPyFloat_Type")]
12 pub static mut PyFloat_Type: PyTypeObject;
13}
14
15#[inline]
16pub unsafe fn PyFloat_Check(op: *mut PyObject) -> c_int {
17 PyObject_TypeCheck(op, addr_of_mut!(PyFloat_Type))
18}
19
20#[inline]
21pub unsafe fn PyFloat_CheckExact(op: *mut PyObject) -> c_int {
22 (Py_TYPE(op) == addr_of_mut!(PyFloat_Type)) as c_int
23}
24
25extern "C" {
29 pub fn PyFloat_GetMax() -> c_double;
30 pub fn PyFloat_GetMin() -> c_double;
31 pub fn PyFloat_GetInfo() -> *mut PyObject;
32 #[cfg_attr(PyPy, link_name = "PyPyFloat_FromString")]
33 pub fn PyFloat_FromString(arg1: *mut PyObject) -> *mut PyObject;
34 #[cfg_attr(PyPy, link_name = "PyPyFloat_FromDouble")]
35 pub fn PyFloat_FromDouble(arg1: c_double) -> *mut PyObject;
36 #[cfg_attr(PyPy, link_name = "PyPyFloat_AsDouble")]
37 pub fn PyFloat_AsDouble(arg1: *mut PyObject) -> c_double;
38}
39
40