pyo3_ffi/cpython/
floatobject.rs

1#[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// skipped PyFloat_Pack2
27// skipped PyFloat_Pack4
28// skipped PyFloat_Pack8
29
30// skipped PyFloat_Unpack2
31// skipped PyFloat_Unpack4
32// skipped PyFloat_Unpack8