use crate::{
lean_box, lean_mk_string_from_bytes, lean_panic_fn, lean_set_exit_on_panic,
lean_set_panic_messages,
};
pub fn panic_handler(info: &core::panic::PanicInfo) -> ! {
#[allow(deprecated)] let message = if let Some(s) = info.payload().downcast_ref::<&str>() {
s.as_bytes()
} else {
b"panic inside Rust FFI, no message available"
};
unsafe {
let string = lean_mk_string_from_bytes(message.as_ptr(), message.len());
loop {
lean_set_panic_messages(true);
lean_set_exit_on_panic(true);
lean_panic_fn(lean_box(0), string);
}
}
}