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 type_object(py: Python<'_>) -> &PyType { ... }
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
sourcetype AsRefTarget: PyNativeType
type AsRefTarget: PyNativeType
Utility type to make Py::as_ref work.
Required Associated Constants
Required Methods
sourcefn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
Returns the PyTypeObject instance for this type.
Provided Methods
sourcefn type_object(py: Python<'_>) -> &PyType
fn type_object(py: Python<'_>) -> &PyType
Returns the safe abstraction over the type object.
sourcefn 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.
sourcefn is_exact_type_of(object: &PyAny) -> bool
fn is_exact_type_of(object: &PyAny) -> bool
Checks if object
is an instance of this type.
Implementors
sourceimpl PyTypeInfo for CancelledError
impl PyTypeInfo for CancelledError
type AsRefTarget = CancelledError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for IncompleteReadError
impl PyTypeInfo for IncompleteReadError
type AsRefTarget = IncompleteReadError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for InvalidStateError
impl PyTypeInfo for InvalidStateError
type AsRefTarget = InvalidStateError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for LimitOverrunError
impl PyTypeInfo for LimitOverrunError
type AsRefTarget = LimitOverrunError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for QueueEmpty
impl PyTypeInfo for QueueEmpty
type AsRefTarget = QueueEmpty
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for QueueFull
impl PyTypeInfo for QueueFull
sourceimpl PyTypeInfo for TimeoutError
impl PyTypeInfo for TimeoutError
type AsRefTarget = TimeoutError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for gaierror
impl PyTypeInfo for gaierror
sourceimpl PyTypeInfo for herror
impl PyTypeInfo for herror
sourceimpl PyTypeInfo for timeout
impl PyTypeInfo for timeout
sourceimpl PyTypeInfo for PyArithmeticError
impl PyTypeInfo for PyArithmeticError
type AsRefTarget = PyArithmeticError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyAssertionError
impl PyTypeInfo for PyAssertionError
type AsRefTarget = PyAssertionError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyAttributeError
impl PyTypeInfo for PyAttributeError
type AsRefTarget = PyAttributeError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyBaseException
impl PyTypeInfo for PyBaseException
type AsRefTarget = PyBaseException
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyBlockingIOError
impl PyTypeInfo for PyBlockingIOError
type AsRefTarget = PyBlockingIOError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyBrokenPipeError
impl PyTypeInfo for PyBrokenPipeError
type AsRefTarget = PyBrokenPipeError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyBufferError
impl PyTypeInfo for PyBufferError
type AsRefTarget = PyBufferError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyChildProcessError
impl PyTypeInfo for PyChildProcessError
type AsRefTarget = PyChildProcessError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyConnectionAbortedError
impl PyTypeInfo for PyConnectionAbortedError
type AsRefTarget = PyConnectionAbortedError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyConnectionError
impl PyTypeInfo for PyConnectionError
type AsRefTarget = PyConnectionError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyConnectionRefusedError
impl PyTypeInfo for PyConnectionRefusedError
type AsRefTarget = PyConnectionRefusedError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyConnectionResetError
impl PyTypeInfo for PyConnectionResetError
type AsRefTarget = PyConnectionResetError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyEOFError
impl PyTypeInfo for PyEOFError
type AsRefTarget = PyEOFError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyEnvironmentError
impl PyTypeInfo for PyEnvironmentError
type AsRefTarget = PyEnvironmentError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyException
impl PyTypeInfo for PyException
type AsRefTarget = PyException
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyFileExistsError
impl PyTypeInfo for PyFileExistsError
type AsRefTarget = PyFileExistsError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyFileNotFoundError
impl PyTypeInfo for PyFileNotFoundError
type AsRefTarget = PyFileNotFoundError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyFloatingPointError
impl PyTypeInfo for PyFloatingPointError
type AsRefTarget = PyFloatingPointError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyGeneratorExit
impl PyTypeInfo for PyGeneratorExit
type AsRefTarget = PyGeneratorExit
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyIOError
impl PyTypeInfo for PyIOError
sourceimpl PyTypeInfo for PyImportError
impl PyTypeInfo for PyImportError
type AsRefTarget = PyImportError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyIndexError
impl PyTypeInfo for PyIndexError
type AsRefTarget = PyIndexError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyInterruptedError
impl PyTypeInfo for PyInterruptedError
type AsRefTarget = PyInterruptedError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyIsADirectoryError
impl PyTypeInfo for PyIsADirectoryError
type AsRefTarget = PyIsADirectoryError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyKeyError
impl PyTypeInfo for PyKeyError
type AsRefTarget = PyKeyError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyKeyboardInterrupt
impl PyTypeInfo for PyKeyboardInterrupt
type AsRefTarget = PyKeyboardInterrupt
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyLookupError
impl PyTypeInfo for PyLookupError
type AsRefTarget = PyLookupError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyMemoryError
impl PyTypeInfo for PyMemoryError
type AsRefTarget = PyMemoryError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyModuleNotFoundError
impl PyTypeInfo for PyModuleNotFoundError
type AsRefTarget = PyModuleNotFoundError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyNameError
impl PyTypeInfo for PyNameError
type AsRefTarget = PyNameError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyNotADirectoryError
impl PyTypeInfo for PyNotADirectoryError
type AsRefTarget = PyNotADirectoryError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyNotImplementedError
impl PyTypeInfo for PyNotImplementedError
type AsRefTarget = PyNotImplementedError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyOSError
impl PyTypeInfo for PyOSError
sourceimpl PyTypeInfo for PyOverflowError
impl PyTypeInfo for PyOverflowError
type AsRefTarget = PyOverflowError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyPermissionError
impl PyTypeInfo for PyPermissionError
type AsRefTarget = PyPermissionError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyProcessLookupError
impl PyTypeInfo for PyProcessLookupError
type AsRefTarget = PyProcessLookupError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyRecursionError
impl PyTypeInfo for PyRecursionError
type AsRefTarget = PyRecursionError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyReferenceError
impl PyTypeInfo for PyReferenceError
type AsRefTarget = PyReferenceError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyRuntimeError
impl PyTypeInfo for PyRuntimeError
type AsRefTarget = PyRuntimeError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyStopAsyncIteration
impl PyTypeInfo for PyStopAsyncIteration
type AsRefTarget = PyStopAsyncIteration
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyStopIteration
impl PyTypeInfo for PyStopIteration
type AsRefTarget = PyStopIteration
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PySyntaxError
impl PyTypeInfo for PySyntaxError
type AsRefTarget = PySyntaxError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PySystemError
impl PyTypeInfo for PySystemError
type AsRefTarget = PySystemError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PySystemExit
impl PyTypeInfo for PySystemExit
type AsRefTarget = PySystemExit
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyTimeoutError
impl PyTypeInfo for PyTimeoutError
type AsRefTarget = PyTimeoutError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyTypeError
impl PyTypeInfo for PyTypeError
type AsRefTarget = PyTypeError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyUnboundLocalError
impl PyTypeInfo for PyUnboundLocalError
type AsRefTarget = PyUnboundLocalError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyUnicodeDecodeError
impl PyTypeInfo for PyUnicodeDecodeError
type AsRefTarget = PyUnicodeDecodeError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyUnicodeEncodeError
impl PyTypeInfo for PyUnicodeEncodeError
type AsRefTarget = PyUnicodeEncodeError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyUnicodeError
impl PyTypeInfo for PyUnicodeError
type AsRefTarget = PyUnicodeError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyUnicodeTranslateError
impl PyTypeInfo for PyUnicodeTranslateError
type AsRefTarget = PyUnicodeTranslateError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyValueError
impl PyTypeInfo for PyValueError
type AsRefTarget = PyValueError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyZeroDivisionError
impl PyTypeInfo for PyZeroDivisionError
type AsRefTarget = PyZeroDivisionError
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PanicException
impl PyTypeInfo for PanicException
type AsRefTarget = PanicException
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyAny
impl PyTypeInfo for PyAny
sourceimpl PyTypeInfo for PyModule
impl PyTypeInfo for PyModule
sourceimpl PyTypeInfo for PyBool
impl PyTypeInfo for PyBool
sourceimpl PyTypeInfo for PyByteArray
impl PyTypeInfo for PyByteArray
type AsRefTarget = PyByteArray
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyBytes
impl PyTypeInfo for PyBytes
sourceimpl PyTypeInfo for PyCFunction
impl PyTypeInfo for PyCFunction
type AsRefTarget = PyCFunction
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyCapsule
impl PyTypeInfo for PyCapsule
sourceimpl PyTypeInfo for PyCode
Available on non-Py_LIMITED_API
only.
impl PyTypeInfo for PyCode
Available on non-
Py_LIMITED_API
only.sourceimpl PyTypeInfo for PyComplex
impl PyTypeInfo for PyComplex
sourceimpl PyTypeInfo for PyDate
Available on non-Py_LIMITED_API
only.
impl PyTypeInfo for PyDate
Available on non-
Py_LIMITED_API
only.sourceimpl PyTypeInfo for PyDateTime
Available on non-Py_LIMITED_API
only.
impl PyTypeInfo for PyDateTime
Available on non-
Py_LIMITED_API
only.type AsRefTarget = PyDateTime
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyDelta
Available on non-Py_LIMITED_API
only.
impl PyTypeInfo for PyDelta
Available on non-
Py_LIMITED_API
only.sourceimpl PyTypeInfo for PyDict
impl PyTypeInfo for PyDict
sourceimpl PyTypeInfo for PyDictItems
impl PyTypeInfo for PyDictItems
type AsRefTarget = PyDictItems
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyDictKeys
impl PyTypeInfo for PyDictKeys
type AsRefTarget = PyDictKeys
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyDictValues
impl PyTypeInfo for PyDictValues
type AsRefTarget = PyDictValues
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyFloat
impl PyTypeInfo for PyFloat
sourceimpl PyTypeInfo for PyFrame
Available on non-Py_LIMITED_API
and non-PyPy
only.
impl PyTypeInfo for PyFrame
Available on non-
Py_LIMITED_API
and non-PyPy
only.sourceimpl PyTypeInfo for PyFrozenSet
impl PyTypeInfo for PyFrozenSet
type AsRefTarget = PyFrozenSet
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyFunction
impl PyTypeInfo for PyFunction
type AsRefTarget = PyFunction
const NAME: &'static str = _
const MODULE: Option<&'static str> = _
sourceimpl PyTypeInfo for PyList
impl PyTypeInfo for PyList
sourceimpl PyTypeInfo for PyLong
impl PyTypeInfo for PyLong
sourceimpl PyTypeInfo for PySet
impl PyTypeInfo for PySet
sourceimpl PyTypeInfo for PySlice
impl PyTypeInfo for PySlice
sourceimpl PyTypeInfo for PyString
impl PyTypeInfo for PyString
sourceimpl PyTypeInfo for PySuper
Available on non-PyPy
only.
impl PyTypeInfo for PySuper
Available on non-
PyPy
only.sourceimpl PyTypeInfo for PyTime
Available on non-Py_LIMITED_API
only.
impl PyTypeInfo for PyTime
Available on non-
Py_LIMITED_API
only.