Trait cpython::py_class::BaseObject
[−]
[src]
pub trait BaseObject: PythonObject { type InitType; fn size() -> usize; unsafe fn alloc(
py: Python,
ty: &PyType,
init_val: Self::InitType
) -> PyResult<PyObject>; unsafe fn dealloc(py: Python, obj: *mut PyObject); }
A PythonObject that is usable as a base type with the py_class!()
macro.
Associated Types
type InitType
Required Methods
fn size() -> usize
Gets the size of the object, in bytes.
unsafe fn alloc(
py: Python,
ty: &PyType,
init_val: Self::InitType
) -> PyResult<PyObject>
py: Python,
ty: &PyType,
init_val: Self::InitType
) -> PyResult<PyObject>
Allocates a new object (usually by calling ty->tp_alloc),
and initializes it using init_val.
ty
must be derived from the Self type, and the resulting object
must be of type ty
.
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.