pyo3_error

Trait AnyErrorToPyErr

Source
pub trait AnyErrorToPyErr {
    // Required methods
    fn try_from_err<T: MapErrorToPyErr>(
        py: Python<'_>,
        err: Box<dyn Error + 'static>,
    ) -> Result<PyErr, Box<dyn Error + 'static>>;
    fn try_from_err_ref<T: MapErrorToPyErr>(
        py: Python<'_>,
        err: &(dyn Error + 'static),
    ) -> Option<PyErr>;
}
Expand description

Utility trait to try to translate from std::error::Error to PyErr.

ErrorNoPyErr may be used to always fail at translating.

IoErrorToPyErr may be used to translate std::io::Error to PyErr.

Required Methods§

Source

fn try_from_err<T: MapErrorToPyErr>( py: Python<'_>, err: Box<dyn Error + 'static>, ) -> Result<PyErr, Box<dyn Error + 'static>>

Try to translate from a boxed err to a PyErr, or return the err.

When a strongly typed translation from some specific error type E to a PyErr is attempted, MapErrorToPyErr::try_map should be used to allow the mapper to test for E in addition to wrapped errors such as MyError<E>.

§Errors

Returns the original err if translating to a PyErr failed.

Source

fn try_from_err_ref<T: MapErrorToPyErr>( py: Python<'_>, err: &(dyn Error + 'static), ) -> Option<PyErr>

Try to translate from an err reference to a PyErr, or return None.

When a strongly typed translation from some specific error type E to a PyErr is attempted, MapErrorToPyErr::try_map_ref should be used to allow the mapper to test for E in addition to wrapped errors such as MyError<E>.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§