napi-derive

js_function

```rust

[macro_use]

extern crate napirsderive;

use napi_rs::{Result, Value, CallContext, Number}; use std::convert::TryInto;

[js_function]

fn fibonacci<'env>(ctx: CallContext<'env>) -> Result> { let n = ctx.get::(0)?.tryinto()?; ctx.env.createint64(fibonacci_native(n)) }

[inline]

fn fibonaccinative(n: i64) -> i64 { match n { 1 | 2 => 1, _ => fibonaccinative(n - 1) + fibonacci_native(n - 2) } } ```