Skip to main content

pyo3_ffi/cpython/
marshal.rs

1use crate::{PyObject, Py_ssize_t};
2use libc::FILE;
3use std::ffi::{c_char, c_int, c_long};
4
5#[cfg(Py_3_15)]
6pub const Py_MARSHAL_VERSION: c_int = 6;
7
8#[cfg(not(Py_3_15))]
9pub const Py_MARSHAL_VERSION: c_int = 5;
10
11extern_libpython! {
12    #[cfg_attr(PyPy, link_name = "PyPyMarshal_WriteObjectToString")]
13    pub fn PyMarshal_WriteObjectToString(object: *mut PyObject, version: c_int) -> *mut PyObject;
14
15    #[cfg_attr(PyPy, link_name = "PyPyMarshal_ReadObjectFromString")]
16    pub fn PyMarshal_ReadObjectFromString(data: *const c_char, len: Py_ssize_t) -> *mut PyObject;
17
18    pub fn PyMarshal_WriteLongToFile(value: c_long, file: *mut FILE, version: c_int);
19
20    pub fn PyMarshal_WriteObjectToFile(object: *mut PyObject, file: *mut FILE, version: c_int);
21
22    pub fn PyMarshal_ReadLongFromFile(file: *mut FILE) -> c_long;
23
24    pub fn PyMarshal_ReadShortFromFile(file: *mut FILE) -> c_int;
25
26    pub fn PyMarshal_ReadObjectFromFile(file: *mut FILE) -> *mut PyObject;
27
28    pub fn PyMarshal_ReadLastObjectFromFile(file: *mut FILE) -> *mut PyObject;
29}
⚠️ Internal Docs ⚠️ Not Public API 👉 Official Docs Here