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