trap 0.0.0

Bare metal traps.
Documentation
// Copyright 2025 Gabriel Bjørnager Jensen.

//! Bare metal traps.

#![no_std]

use cfg_if::cfg_if;
use core::arch::asm;
use core::hint::unreachable_unchecked;

/// Traps the machine.
#[cold]
#[inline(never)]
pub fn trap() -> ! {
	cfg_if! {
		if #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] {
			unsafe {
				asm!("ud2");
				unreachable_unchecked();
			}
		} else {
			panic!("trap");
		}
	}
}