generate_nodejs_binding

Macro generate_nodejs_binding 

Source
generate_nodejs_binding!() { /* proc-macro */ }
Expand description

Generate Node.js (NAPI) binding for a unary mathematical function

§Arguments

  • name - The function name (e.g., sin)

§Examples

generate_nodejs_binding!(sin);

Generates:

#[napi]
pub fn sin(x: napi::Either<&JsExpression, f64>) -> JsExpression {
    let expr = match x {
        napi::Either::A(e) => e.inner.clone(),
        napi::Either::B(num) => {
            if num.fract() == 0.0 && num.is_finite() {
                Expression::integer(num as i64)
            } else {
                Expression::float(num)
            }
        }
    };
    JsExpression {
        inner: Expression::function("sin", vec![expr]),
    }
}