summaryrefslogtreecommitdiff
path: root/examples/rust/src/fibonacci.rs
blob: 3e4be73d9681a8591f1a0bbd73073de060844641 (plain)
#![no_std]
#![no_main]

#[cfg(not(test))]
#[panic_handler]
fn panic(_info: &core::panic::PanicInfo) -> ! {
    core::arch::wasm32::unreachable()
}

#[no_mangle]
pub extern "C" fn fibonacci(n: i32) -> i32 {
    let mut sum = 0;
    let mut last = 0;
    let mut curr = 1;
    for _i in 1..n {
        sum = last + curr;
        last = curr;
        curr = sum;
    }
    sum
}