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