use alloc::boxed::Box; use core::fmt::{self, Debug, Display}; /// Exception thrown from an `extern "C++"` function. #[derive(Debug)] pub struct Exception { pub(crate) what: Box, } impl Display for Exception { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.write_str(&self.what) } } impl std::error::Error for Exception {} impl Exception { pub fn what(&self) -> &str { &self.what } }