pyo3_ffi/cpython/
dictobject.rs

1#[cfg(not(GraalPy))]
2use crate::object::*;
3#[cfg(not(any(PyPy, GraalPy)))]
4use crate::pyport::Py_ssize_t;
5
6#[cfg(not(PyPy))]
7opaque_struct!(pub PyDictKeysObject);
8
9#[cfg(Py_3_11)]
10#[cfg(not(PyPy))]
11opaque_struct!(pub PyDictValues);
12
13#[cfg(not(any(GraalPy, PyPy)))]
14#[repr(C)]
15#[derive(Debug)]
16pub struct PyDictObject {
17    pub ob_base: PyObject,
18    pub ma_used: Py_ssize_t,
19    #[cfg_attr(
20        Py_3_12,
21        deprecated(note = "Deprecated in Python 3.12 and will be removed in the future.")
22    )]
23    #[cfg(not(Py_3_14))]
24    pub ma_version_tag: u64,
25    #[cfg(Py_3_14)]
26    _ma_watcher_tag: u64,
27    pub ma_keys: *mut PyDictKeysObject,
28    #[cfg(not(Py_3_11))]
29    pub ma_values: *mut *mut PyObject,
30    #[cfg(Py_3_11)]
31    pub ma_values: *mut PyDictValues,
32}
33
34#[cfg(PyPy)]
35#[repr(C)]
36#[derive(Debug)]
37pub struct PyDictObject {
38    pub ob_base: PyObject,
39    _tmpkeys: *mut PyObject,
40}
41
42// skipped private _PyDict_GetItem_KnownHash
43// skipped private _PyDict_GetItemStringWithError
44
45// skipped PyDict_SetDefault
46// skipped PyDict_SetDefaultRef
47
48// skipped PyDict_GET_SIZE
49// skipped PyDict_ContainsString
50
51// skipped private _PyDict_NewPresized
52
53// skipped PyDict_Pop
54// skipped PyDict_PopString
55
56// skipped private _PyDict_Pop
57
58// skipped PY_FOREACH_DICT_EVENT
59// skipped PyDict_WatchEvent
60
61// skipped PyDict_WatchCallback
62
63// skipped PyDict_AddWatcher
64// skipped PyDict_ClearWatcher
65
66// skipped PyDict_Watch
67// skipped PyDict_Unwatch