1#![cfg(feature = "alloc")]
2
3use alloc::boxed::Box;
4use core::fmt::{self, Display};
5
6use core::error::Error as StdError;
7
8#[cfg_attr(docsrs, doc(cfg(feature = "alloc")))]
10#[derive(Debug)]
11pub struct Exception {
12 pub(crate) what: Box<str>,
13}
14
15impl Display for Exception {
16 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
17 f.write_str(&self.what)
18 }
19}
20
21impl StdError for Exception {}
22
23impl Exception {
24 #[allow(missing_docs)]
25 pub fn what(&self) -> &str {
26 &self.what
27 }
28}