Um programa no_std mínimo

#![no_main]
#![no_std]

use core::panic::PanicInfo;

#[panic_handler]
fn panic(_panic: &PanicInfo) -> ! {
    loop {}
}
  • Isso irá compilar em um binário vazio.
  • std fornece um manipulador de pânico; sem ele, devemos fornecer o nosso.
  • Também pode ser fornecido por outro crate, como panic-halt.
  • Dependendo do destino, você pode precisar compilar com panic = "abort" para evitar um erro sobre eh_personality.
  • Observe que não há main ou qualquer outro ponto de entrada; cabe a você definir seu próprio ponto de entrada. Isso normalmente envolverá um script de linker (ligação) e algum código assembly para deixar as coisas prontas para que o código Rust seja executado.