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]),
}
}