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 pub ob_fval: c_double,
10}
11
12#[inline]
13pub unsafe fn _PyFloat_CAST(op: *mut PyObject) -> *mut PyFloatObject {
14 debug_assert_eq!(PyFloat_Check(op), 1);
15 op.cast()
16}
17
18#[inline]
19pub unsafe fn PyFloat_AS_DOUBLE(op: *mut PyObject) -> c_double {
20 #[cfg(not(GraalPy))]
21 return (*_PyFloat_CAST(op)).ob_fval;
22 #[cfg(GraalPy)]
23 return PyFloat_AsDouble(op);
24}
25
26