oxide_eval 0.1.2

Oxide Eval is a simple Javascript Evaluator based on oxc.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use anyhow::Result;
use serde_json::Value;

use crate::util::number_from_f64;

use super::plus::unary_plus;

pub fn unary_negation(value: Value) -> Result<Value> {
    let result = unary_plus(value)?;
    match result {
        Value::Number(value) => {
            let result = -value.as_f64().unwrap_or_default();
            Ok(Value::Number(number_from_f64(result)?))
        }
        _ => Ok(Value::Null),
    }
}