pub unsafe trait PyTypeInfo: Sized {
    type AsRefTarget: PyNativeType;

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

    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

It is safely implemented by the pyclass macro.

Safety

Implementations must provide an implementation for type_object_raw which infallibly produces a non-null pointer to the corresponding Python type object.

Associated Types

Utility type to make Py::as_ref work.

Associated Constants

Class name.

Module name, if any.

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