Skip to main content

PyTypeInfo

Trait PyTypeInfo 

Source
pub unsafe trait PyTypeInfo: Sized {
    const TYPE_HINT: PyStaticExpr = _;

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

    // Provided methods
    fn type_object(py: Python<'_>) -> Bound<'_, PyType> { ... }
    fn is_type_of(object: &Bound<'_, PyAny>) -> bool { ... }
    fn is_exact_type_of(object: &Bound<'_, 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.

is_type_of must only return true for objects which can safely be treated as instances of Self.

is_exact_type_of must only return true for objects whose type is exactly Self.

Provided Associated Constants§

Source

const TYPE_HINT: PyStaticExpr = _

Available on crate feature experimental-inspect only.

Provides the full python type as a type hint.

Required Methods§

Source

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

Returns the PyTypeObject instance for this type.

Provided Methods§

Source

fn type_object(py: Python<'_>) -> Bound<'_, PyType>

Returns the safe abstraction over the type object.

Source

fn is_type_of(object: &Bound<'_, PyAny>) -> bool

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

Source

fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of this type.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl PyTypeInfo for CancelledError

Source§

impl PyTypeInfo for Coroutine

Available on crate feature experimental-async only.
Source§

impl PyTypeInfo for IncompleteReadError

Source§

impl PyTypeInfo for InvalidStateError

Source§

impl PyTypeInfo for LimitOverrunError

Source§

impl PyTypeInfo for PanicException

Available on wip_feature_std only.
Source§

impl PyTypeInfo for PyAny

Source§

impl PyTypeInfo for PyArithmeticError

Source§

impl PyTypeInfo for PyAssertionError

Source§

impl PyTypeInfo for PyAttributeError

Source§

impl PyTypeInfo for PyBaseException

Source§

impl PyTypeInfo for PyBaseExceptionGroup

Source§

impl PyTypeInfo for PyBlockingIOError

Source§

impl PyTypeInfo for PyBool

Source§

impl PyTypeInfo for PyBrokenPipeError

Source§

impl PyTypeInfo for PyBufferError

Source§

impl PyTypeInfo for PyByteArray

Source§

impl PyTypeInfo for PyBytes

Source§

impl PyTypeInfo for PyBytesWarning

Source§

impl PyTypeInfo for PyCFunction

Source§

impl PyTypeInfo for PyCapsule

Source§

impl PyTypeInfo for PyChildProcessError

Source§

impl PyTypeInfo for PyCode

Source§

impl PyTypeInfo for PyComplex

Source§

impl PyTypeInfo for PyConnectionAbortedError

Source§

impl PyTypeInfo for PyConnectionError

Source§

impl PyTypeInfo for PyConnectionRefusedError

Source§

impl PyTypeInfo for PyConnectionResetError

Source§

impl PyTypeInfo for PyContext

Available on neither GraalPy nor Py_LIMITED_API nor PyPy nor RustPython.
Source§

impl PyTypeInfo for PyDate

Source§

impl PyTypeInfo for PyDateTime

Source§

impl PyTypeInfo for PyDelta

Source§

impl PyTypeInfo for PyDeprecationWarning

Source§

impl PyTypeInfo for PyDict

Source§

impl PyTypeInfo for PyDictItems

Source§

impl PyTypeInfo for PyDictKeys

Source§

impl PyTypeInfo for PyDictValues

Source§

impl PyTypeInfo for PyEOFError

Source§

impl PyTypeInfo for PyEllipsis

Source§

impl PyTypeInfo for PyEncodingWarning

Source§

impl PyTypeInfo for PyException

Source§

impl PyTypeInfo for PyFileExistsError

Source§

impl PyTypeInfo for PyFileNotFoundError

Source§

impl PyTypeInfo for PyFloat

Source§

impl PyTypeInfo for PyFloatingPointError

Source§

impl PyTypeInfo for PyFrame

Available on non-GraalPy and non-Py_LIMITED_API and non-PyPy only.
Source§

impl PyTypeInfo for PyFrozenSet

Source§

impl PyTypeInfo for PyFunction

Source§

impl PyTypeInfo for PyFutureWarning

Source§

impl PyTypeInfo for PyGeneratorExit

Source§

impl PyTypeInfo for PyGenericAlias

Source§

impl PyTypeInfo for PyImportError

Source§

impl PyTypeInfo for PyImportWarning

Source§

impl PyTypeInfo for PyIndexError

Source§

impl PyTypeInfo for PyInt

Source§

impl PyTypeInfo for PyInterruptedError

Source§

impl PyTypeInfo for PyIsADirectoryError

Source§

impl PyTypeInfo for PyIterator

Source§

impl PyTypeInfo for PyKeyError

Source§

impl PyTypeInfo for PyKeyboardInterrupt

Source§

impl PyTypeInfo for PyList

Source§

impl PyTypeInfo for PyLookupError

Source§

impl PyTypeInfo for PyMapping

Source§

impl PyTypeInfo for PyMappingProxy

Source§

impl PyTypeInfo for PyMemoryError

Source§

impl PyTypeInfo for PyMemoryView

Source§

impl PyTypeInfo for PyModule

Source§

impl PyTypeInfo for PyModuleNotFoundError

Source§

impl PyTypeInfo for PyNameError

Source§

impl PyTypeInfo for PyNone

Source§

impl PyTypeInfo for PyNotADirectoryError

Source§

impl PyTypeInfo for PyNotImplemented

Source§

impl PyTypeInfo for PyNotImplementedError

Source§

impl PyTypeInfo for PyOSError

Source§

impl PyTypeInfo for PyOverflowError

Source§

impl PyTypeInfo for PyPendingDeprecationWarning

Source§

impl PyTypeInfo for PyPermissionError

Source§

impl PyTypeInfo for PyProcessLookupError

Source§

impl PyTypeInfo for PyRange

Source§

impl PyTypeInfo for PyRecursionError

Source§

impl PyTypeInfo for PyReferenceError

Source§

impl PyTypeInfo for PyResourceWarning

Source§

impl PyTypeInfo for PyRuntimeError

Source§

impl PyTypeInfo for PyRuntimeWarning

Source§

impl PyTypeInfo for PySequence

Source§

impl PyTypeInfo for PySet

Source§

impl PyTypeInfo for PySlice

Source§

impl PyTypeInfo for PyStopAsyncIteration

Source§

impl PyTypeInfo for PyStopIteration

Source§

impl PyTypeInfo for PyString

Source§

impl PyTypeInfo for PySuper

Source§

impl PyTypeInfo for PySyntaxError

Source§

impl PyTypeInfo for PySyntaxWarning

Source§

impl PyTypeInfo for PySystemError

Source§

impl PyTypeInfo for PySystemExit

Source§

impl PyTypeInfo for PyTime

Source§

impl PyTypeInfo for PyTimeoutError

Source§

impl PyTypeInfo for PyTraceback

Source§

impl PyTypeInfo for PyTuple

Source§

impl PyTypeInfo for PyType

Source§

impl PyTypeInfo for PyTypeError

Source§

impl PyTypeInfo for PyTzInfo

Source§

impl PyTypeInfo for PyUnboundLocalError

Source§

impl PyTypeInfo for PyUnicodeDecodeError

Source§

impl PyTypeInfo for PyUnicodeEncodeError

Source§

impl PyTypeInfo for PyUnicodeError

Source§

impl PyTypeInfo for PyUnicodeTranslateError

Source§

impl PyTypeInfo for PyUnicodeWarning

Source§

impl PyTypeInfo for PyUserWarning

Source§

impl PyTypeInfo for PyValueError

Source§

impl PyTypeInfo for PyWarning

Source§

impl PyTypeInfo for PyWeakrefReference

Source§

impl PyTypeInfo for PyZeroDivisionError

Source§

impl PyTypeInfo for QueueEmpty

Source§

impl PyTypeInfo for QueueFull

Source§

impl PyTypeInfo for TimeoutError

Source§

impl PyTypeInfo for gaierror

Source§

impl PyTypeInfo for herror

Source§

impl PyTypeInfo for timeout

⚠️ Internal Docs ⚠️ Not Public API 👉 Official Docs Here