macro_rules! py_wrap_error {
($module: ident, $rust: ty, $python: ident, $base: ty) => { ... };
}Expand description
Creates a new exception type and implements converting from the given Rust error to the new exception.
The Rust error type must at least implement ToString. All types
that implement Error implement this through
Display.
use rigetti_pyo3::py_wrap_error;
use rigetti_pyo3::pyo3::exceptions::PyValueError;
use std::fmt;
#[derive(Debug)]
enum RustError {}
impl fmt::Display for RustError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
unimplemented!()
}
}
impl std::error::Error for RustError {}
py_wrap_error!(my_python_module, RustError, PythonError, PyValueError);