datalogic-rs 4.0.21

A fast, type-safe Rust implementation of JSONLogic for evaluating logical rules as JSON. Perfect for business rules engines and dynamic filtering in Rust applications.
Documentation
[
    "# Collection of Minus Operator Tests",
    {
        "description": "Subtraction",
        "rule": { "-": [1, 2] },
        "result": -1,
        "data": null
    },
    {
        "description": "Subtraction (2)",
        "rule": { "-": [5, 12] },
        "result": -7,
        "data": null
    },
    {
        "description": "Subtraction with Multiple Operands",
        "rule": { "-": [1, 2, 3, 4] },
        "result": -8,
        "data": null
    },
    {
        "description": "Subtraction with Negative Numbers",
        "rule": { "-": [-1, 0, 5] },
        "result": -6,
        "data": null
    },
    {
        "description": "Subtraction with Strings",
        "rule": { "-": ["1", "2", "3"] },
        "result": -4,
        "data": null
    },
    {
        "description": "Subtraction with Booleans",
        "rule": { "-": [true, false, true] },
        "result": 0,
        "data": null
    },
    {
        "description": "Subtraction with Multiple Value Types",
        "rule": { "-": [1, "2", 3, "4", "", true, false, null] },
        "result": -9,
        "data": null
    },
    {
        "description": "Minus Operator with Single Operand (Number)",
        "rule": { "-": [1] },
        "result": -1,
        "data": null
    },
    {
        "description": "Minus Operator with Single Operand (Negative Number)",
        "rule": { "-": [-1] },
        "result": 1,
        "data": null
    },
    {
        "description": "Minus with zero operands is an error",
        "rule": { "-": [] },
        "error": { "type": "Invalid Arguments" },
        "data": null
    },
    {
        "description": "Minus Operator with Single Operand, Direct (Number)",
        "rule": { "-": 1 },
        "result": -1,
        "data": null
    },
    {
        "description": "Minus Operator with Single Operand, Direct (0)",
        "rule": { "-": 0 },
        "result": 0,
        "data": null
    },
    {
        "description": "Minus Operator with Single Operand (String)",
        "rule": { "-": ["1"] },
        "result": -1,
        "data": null
    },
    {
        "description": "Minus Operator with Single Operand, Direct (Negative Number String)",
        "rule": { "-": "-1" },
        "result": 1,
        "data": null
    },

    {
        "description": "Minus Operator with Single Operand, Direct (String 0)",
        "rule": { "-": "0" },
        "result": 0,
        "data": null
    },
    {
        "description": "Minus Operator with Single Operand, Direct (true)",
        "rule": { "-": true },
        "result": -1,
        "data": null
    },
    {
        "description": "Minus Operator with Single Operand, Direct (false)",
        "rule": { "-": false },
        "result": 0,
        "data": null
    },
    {
        "description": "Minus Operator with Single Operand, Direct (Empty String)",
        "rule": { "-": "" },
        "result": 0,
        "data": null
    },
    {
        "description": "Minus Operator with a Single Operand, Direct (null)",
        "rule": { "-": null },
        "result": 0,
        "data": null
    },
    {
        "description": "Subtraction with val",
        "rule": { "-": [{ "val": "x" }, { "val": "y" }] },
        "data": { "x": 1, "y": 2 },
        "result": -1
    },
    {
        "description": "Subtraction with string produces NaN",
        "rule": { "-": ["Hey", 1] },
        "error": { "type": "NaN" },
        "data": null
    },
    {
        "description": "Subtraction with Array produces NaN",
        "rule": { "-": [[1], 1] },
        "error": { "type": "NaN" },
        "data": null
    }
]