[][src]Trait pyo3::typeob::PyObjectAlloc

pub trait PyObjectAlloc: PyTypeInfo + Sized {
    unsafe fn alloc(_py: Python) -> *mut PyObject { ... }
unsafe fn dealloc(py: Python, obj: *mut PyObject) { ... }
unsafe fn drop(py: Python, obj: *mut PyObject) { ... } }

A Python object allocator that is usable as a base type for #[pyclass]

All native types and all #[pyclass] types use the default functions, while PyObjectWithFreeList gets a special version.

Provided methods

unsafe fn alloc(_py: Python) -> *mut PyObject

unsafe fn dealloc(py: Python, obj: *mut PyObject)

Calls the rust destructor for the object and frees the memory (usually by calling ptr->ob_type->tp_free). This function is used as tp_dealloc implementation.

unsafe fn drop(py: Python, obj: *mut PyObject)

Calls the rust destructor for the object.

Loading content...

Implementors

impl PyObjectAlloc for PyModule[src]

unsafe fn alloc(_py: Python) -> *mut PyObject[src]

unsafe fn dealloc(py: Python, obj: *mut PyObject)[src]

unsafe fn drop(py: Python, obj: *mut PyObject)[src]

impl PyObjectAlloc for PyBool[src]

unsafe fn alloc(_py: Python) -> *mut PyObject[src]

unsafe fn dealloc(py: Python, obj: *mut PyObject)[src]

unsafe fn drop(py: Python, obj: *mut PyObject)[src]

impl PyObjectAlloc for PyByteArray[src]

unsafe fn alloc(_py: Python) -> *mut PyObject[src]

unsafe fn dealloc(py: Python, obj: *mut PyObject)[src]

unsafe fn drop(py: Python, obj: *mut PyObject)[src]

impl PyObjectAlloc for PyBytes[src]

unsafe fn alloc(_py: Python) -> *mut PyObject[src]

unsafe fn dealloc(py: Python, obj: *mut PyObject)[src]

unsafe fn drop(py: Python, obj: *mut PyObject)[src]

impl PyObjectAlloc for PyComplex[src]

unsafe fn alloc(_py: Python) -> *mut PyObject[src]

unsafe fn dealloc(py: Python, obj: *mut PyObject)[src]

unsafe fn drop(py: Python, obj: *mut PyObject)[src]

impl PyObjectAlloc for PyDate[src]

unsafe fn alloc(_py: Python) -> *mut PyObject[src]

unsafe fn dealloc(py: Python, obj: *mut PyObject)[src]

unsafe fn drop(py: Python, obj: *mut PyObject)[src]

impl PyObjectAlloc for PyDateTime[src]

unsafe fn alloc(_py: Python) -> *mut PyObject[src]

unsafe fn dealloc(py: Python, obj: *mut PyObject)[src]

unsafe fn drop(py: Python, obj: *mut PyObject)[src]

impl PyObjectAlloc for PyDelta[src]

unsafe fn alloc(_py: Python) -> *mut PyObject[src]

unsafe fn dealloc(py: Python, obj: *mut PyObject)[src]

unsafe fn drop(py: Python, obj: *mut PyObject)[src]

impl PyObjectAlloc for PyDict[src]

unsafe fn alloc(_py: Python) -> *mut PyObject[src]

unsafe fn dealloc(py: Python, obj: *mut PyObject)[src]

unsafe fn drop(py: Python, obj: *mut PyObject)[src]

impl PyObjectAlloc for PyFloat[src]

unsafe fn alloc(_py: Python) -> *mut PyObject[src]

unsafe fn dealloc(py: Python, obj: *mut PyObject)[src]

unsafe fn drop(py: Python, obj: *mut PyObject)[src]

impl PyObjectAlloc for PyFrozenSet[src]

unsafe fn alloc(_py: Python) -> *mut PyObject[src]

unsafe fn dealloc(py: Python, obj: *mut PyObject)[src]

unsafe fn drop(py: Python, obj: *mut PyObject)[src]

impl PyObjectAlloc for PyList[src]

unsafe fn alloc(_py: Python) -> *mut PyObject[src]

unsafe fn dealloc(py: Python, obj: *mut PyObject)[src]

unsafe fn drop(py: Python, obj: *mut PyObject)[src]

impl PyObjectAlloc for PyLong[src]

unsafe fn alloc(_py: Python) -> *mut PyObject[src]

unsafe fn dealloc(py: Python, obj: *mut PyObject)[src]

unsafe fn drop(py: Python, obj: *mut PyObject)[src]

impl PyObjectAlloc for PyObjectRef[src]

unsafe fn alloc(_py: Python) -> *mut PyObject[src]

unsafe fn dealloc(py: Python, obj: *mut PyObject)[src]

unsafe fn drop(py: Python, obj: *mut PyObject)[src]

impl PyObjectAlloc for PySet[src]

unsafe fn alloc(_py: Python) -> *mut PyObject[src]

unsafe fn dealloc(py: Python, obj: *mut PyObject)[src]

unsafe fn drop(py: Python, obj: *mut PyObject)[src]

impl PyObjectAlloc for PySlice[src]

unsafe fn alloc(_py: Python) -> *mut PyObject[src]

unsafe fn dealloc(py: Python, obj: *mut PyObject)[src]

unsafe fn drop(py: Python, obj: *mut PyObject)[src]

impl PyObjectAlloc for PyString[src]

unsafe fn alloc(_py: Python) -> *mut PyObject[src]

unsafe fn dealloc(py: Python, obj: *mut PyObject)[src]

unsafe fn drop(py: Python, obj: *mut PyObject)[src]

impl PyObjectAlloc for PyTime[src]

unsafe fn alloc(_py: Python) -> *mut PyObject[src]

unsafe fn dealloc(py: Python, obj: *mut PyObject)[src]

unsafe fn drop(py: Python, obj: *mut PyObject)[src]

impl PyObjectAlloc for PyTuple[src]

unsafe fn alloc(_py: Python) -> *mut PyObject[src]

unsafe fn dealloc(py: Python, obj: *mut PyObject)[src]

unsafe fn drop(py: Python, obj: *mut PyObject)[src]

impl PyObjectAlloc for PyType[src]

unsafe fn alloc(_py: Python) -> *mut PyObject[src]

unsafe fn dealloc(py: Python, obj: *mut PyObject)[src]

unsafe fn drop(py: Python, obj: *mut PyObject)[src]

impl PyObjectAlloc for PyTzInfo[src]

unsafe fn alloc(_py: Python) -> *mut PyObject[src]

unsafe fn dealloc(py: Python, obj: *mut PyObject)[src]

unsafe fn drop(py: Python, obj: *mut PyObject)[src]

impl<T> PyObjectAlloc for T where
    T: PyObjectWithFreeList
[src]

unsafe fn drop(py: Python, obj: *mut PyObject)[src]

Loading content...