Trait pyo3::type_object::PyTypeInfo
source · [−]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.
Required Associated Types
Utility type to make Py::as_ref work.
Required Associated Constants
Required Methods
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
PyTypeObject instance for this type.
Provided Methods
fn is_type_of(object: &PyAny) -> bool
fn is_type_of(object: &PyAny) -> bool
Checks if object
is an instance of this type or a subclass of this type.
fn is_exact_type_of(object: &PyAny) -> bool
fn is_exact_type_of(object: &PyAny) -> bool
Checks if object
is an instance of this type.