#![deny(missing_docs)]
#![deny(rustdoc::broken_intra_doc_links)]
use std::panic::PanicInfo;
#[allow(unused)]
pub fn panic_handler(info: &PanicInfo) {
#[cfg(feature = "debug")]
{
let message =
if let Some(message) = info.payload().downcast_ref::<std::string::String>() {
format!("Kernel panic {:?} at {:?}", message, info.location())
} else {
let message = info.payload().downcast_ref::<&str>();
format!("Kernel panic {:?} at {:?}", message, info.location())
};
#[cfg(target_arch = "wasm32")]
unsafe {
tezos_smart_rollup_core::smart_rollup_core::write_debug(
message.as_ptr(),
message.len(),
);
}
#[cfg(not(target_arch = "wasm32"))]
eprintln!("{}", message);
}
#[cfg(all(feature = "abort", target_arch = "wasm32"))]
std::process::abort()
}