#[cfg(all(target_family = "wasm", miden))]
unsafe extern "C" {
#[cfg_attr(all(target_family = "wasm", miden), linkage = "extern_weak")]
#[link_name = "intrinsics::debug::break"]
fn extern_break();
#[cfg_attr(all(target_family = "wasm", miden), linkage = "extern_weak")]
#[link_name = "intrinsics::debug::println"]
fn extern_println(ptr: *const u8, len: usize);
}
#[inline(always)]
#[track_caller]
#[cfg(all(target_family = "wasm", miden))]
pub fn breakpoint() {
unsafe {
extern_break();
}
}
#[inline(always)]
#[track_caller]
#[cfg(not(all(target_family = "wasm", miden)))]
pub fn breakpoint() {
unimplemented!("debug intrinsics are only available when targeting the Miden VM")
}
#[inline(always)]
#[cfg(all(target_family = "wasm", miden))]
pub fn println(ptr: *const u8, len: usize) {
unsafe {
extern_println(ptr, len);
}
}
#[inline(always)]
#[cfg(not(all(target_family = "wasm", miden)))]
pub fn println(_ptr: *const u8, _len: usize) {
unimplemented!("debug intrinsics are only available when targeting the Miden VM")
}