pyo3_ffi/cpython/
floatobject.rs1#[cfg(GraalPy)]
2use crate::PyFloat_AsDouble;
3#[cfg(not(GraalPy))]
4use crate::PyFloat_Check;
5use crate::PyObject;
6use core::ffi::c_double;
7
8#[repr(C)]
9pub struct PyFloatObject {
10 pub ob_base: PyObject,
11 pub ob_fval: c_double,
12}
13
14#[inline]
15#[cfg(not(GraalPy))]
16unsafe fn _PyFloat_CAST(op: *mut PyObject) -> *mut PyFloatObject {
17 debug_assert_eq!(PyFloat_Check(op), 1);
18 op.cast()
19}
20
21#[inline]
22pub unsafe fn PyFloat_AS_DOUBLE(op: *mut PyObject) -> c_double {
23 #[cfg(not(GraalPy))]
24 return (*_PyFloat_CAST(op)).ob_fval;
25 #[cfg(GraalPy)]
26 return PyFloat_AsDouble(op);
27}
28
29