Trait pyo3::type_object::PyTypeInfo[][src]

pub unsafe trait PyTypeInfo: Sized {
    type Type;
    type BaseType: PyTypeInfo + PyTypeObject;
    type Layout: PyLayout<Self>;
    type BaseLayout: PySizedLayout<Self::BaseType>;
    type Initializer: PyObjectInit<Self>;
    type AsRefTarget: PyNativeType;

    const NAME: &'static str;
    const MODULE: Option<&'static str>;
    const DESCRIPTION: &'static str;
    const FLAGS: usize;

    fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject;

    fn is_type_of(object: &PyAny) -> bool { ... }
fn is_exact_type_of(object: &PyAny) -> bool { ... } }
Expand description

Python type information. All Python native types(e.g., PyDict) and #[pyclass] structs implement this trait.

This trait is marked unsafe because:

  • specifying the incorrect layout can lead to memory errors
  • the return value of type_object must always point to the same PyTypeObject instance

Associated Types

Type of objects to store in PyObject struct

Base class

Layout

Layout of Basetype.

Initializer for layout

Utility type to make Py::as_ref work

Associated Constants

Class name

Module name, if any

Class doc string

Type flags (ie PY_TYPE_FLAG_GC, PY_TYPE_FLAG_WEAKREF)

Required methods

PyTypeObject instance for this type.

Provided methods

Checks if object is an instance of this type or a subclass of this type.

Checks if object is an instance of this type.

Implementors