[][src]Trait pyo3::type_object::PyObjectLayout

pub trait PyObjectLayout<T: PyTypeInfo> {
    const IS_NATIVE_TYPE: bool;
    fn get_super_or(
        &mut self
    ) -> Option<&mut <T::BaseType as PyTypeInfo>::ConcreteLayout> { ... }
unsafe fn internal_ref_cast(obj: &PyAny) -> &T { ... }
unsafe fn internal_mut_cast(obj: &PyAny) -> &mut T { ... }
unsafe fn py_init(&mut self, _value: T) { ... }
unsafe fn py_drop(&mut self, _py: Python) { ... } }

T: PyObjectLayout<U> represents that T is a concrete representaion of U in Python heap. E.g., PyClassShell is a concrete representaion of all pyclasses, and ffi::PyObject is of PyAny.

This trait is intended to be used internally.

Associated Constants

Loading content...

Provided methods

fn get_super_or(
    &mut self
) -> Option<&mut <T::BaseType as PyTypeInfo>::ConcreteLayout>

unsafe fn internal_ref_cast(obj: &PyAny) -> &T

unsafe fn internal_mut_cast(obj: &PyAny) -> &mut T

unsafe fn py_init(&mut self, _value: T)

unsafe fn py_drop(&mut self, _py: Python)

Loading content...

Implementors

impl PyObjectLayout<PyModule> for PyObject[src]

impl PyObjectLayout<PyAny> for PyObject[src]

impl PyObjectLayout<PyBool> for PyObject[src]

impl PyObjectLayout<PyByteArray> for PyObject[src]

impl PyObjectLayout<PyBytes> for PyObject[src]

impl PyObjectLayout<PyComplex> for PyComplexObject[src]

impl PyObjectLayout<PyDate> for PyDateTime_Date[src]

impl PyObjectLayout<PyDateTime> for PyDateTime_DateTime[src]

impl PyObjectLayout<PyDelta> for PyDateTime_Delta[src]

impl PyObjectLayout<PyDict> for PyDictObject[src]

impl PyObjectLayout<PyFloat> for PyFloatObject[src]

impl PyObjectLayout<PyFrozenSet> for PySetObject[src]

impl PyObjectLayout<PyList> for PyObject[src]

impl PyObjectLayout<PyLong> for PyObject[src]

impl PyObjectLayout<PySet> for PySetObject[src]

impl PyObjectLayout<PySlice> for PySliceObject[src]

impl PyObjectLayout<PyString> for PyObject[src]

impl PyObjectLayout<PyTime> for PyDateTime_Time[src]

impl PyObjectLayout<PyTuple> for PyObject[src]

impl PyObjectLayout<PyType> for PyObject[src]

impl PyObjectLayout<PyTzInfo> for PyObject[src]

impl<T: PyClass> PyObjectLayout<T> for PyClassShell<T>[src]

Loading content...