python3_sys/
memoryobject.rs

1use libc::{c_char, c_int};
2
3use crate::object::*;
4use crate::pyport::Py_ssize_t;
5use crate::pybuffer::Py_buffer;
6
7#[cfg_attr(windows, link(name = "pythonXY"))]
8extern "C" {
9    pub static mut PyMemoryView_Type: PyTypeObject;
10}
11
12#[inline(always)]
13pub unsafe fn PyMemoryView_Check(op: *mut PyObject) -> c_int {
14    (Py_TYPE(op) == &mut PyMemoryView_Type) as c_int
15}
16
17#[cfg_attr(windows, link(name = "pythonXY"))]
18extern "C" {
19    pub fn PyMemoryView_FromObject(base: *mut PyObject) -> *mut PyObject;
20    pub fn PyMemoryView_FromMemory(
21        mem: *mut c_char,
22        size: Py_ssize_t,
23        flags: c_int,
24    ) -> *mut PyObject;
25    #[cfg(any(Py_3_11, not(Py_LIMITED_API)))]
26    pub fn PyMemoryView_FromBuffer(info: *mut Py_buffer) -> *mut PyObject;
27    pub fn PyMemoryView_GetContiguous(
28        base: *mut PyObject,
29        buffertype: c_int,
30        order: c_char,
31    ) -> *mut PyObject;
32}