use std::any::Any; use std::fmt; use thiserror::Error; /// Error type returned when a panic occurs during execution. #[derive(Error)] #[error("execution panicked: {payload:?}")] pub struct ProgramPanic { pub payload: Box, } impl ProgramPanic { pub fn new(payload: Box) -> Self { ProgramPanic { payload } } } impl fmt::Debug for ProgramPanic { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "{:?}", self.payload) } }