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 Multiply Operator Tests",
    {
        "description": "Multiply",
        "rule": { "*": [3, 2] },
        "result": 6,
        "data": null
    },
    {
        "description": "Multiply with Multiple Operands",
        "rule": { "*": [5, 10, 2] },
        "result": 100,
        "data": null
    },
    {
        "description": "Multiply with Multiple Operands (2)",
        "rule": { "*": [2, 2, 2] },
        "result": 8,
        "data": null
    },
    {
        "description": "Multiply with Negative Numbers",
        "rule": { "*": [-1, 2, 5] },
        "result": -10,
        "data": null
    },
    {
        "description": "Multiply with Strings",
        "rule": { "*": ["1", "2", "3"] },
        "result": 6,
        "data": null
    },
    {
        "description": "Multiply with Booleans",
        "rule": { "*": [true, false, true] },
        "result": 0,
        "data": null
    },
    {
        "description": "Multiply with Multiple Value Types",
        "rule": { "*": [1, "2", 3, "4", true] },
        "result": 24,
        "data": null
    },
    {
        "description": "Multiply with Multiple Value Types (2)",
        "rule": { "*": [1, "1"] },
        "result": 1,
        "data": null
    },
    {
        "description": "Multiply with Multiple Value Types (3)",
        "rule": { "*": ["1", null] },
        "result": 0,
        "data": null
    },
    {
        "description": "Multiply with Single Operand (Number)",
        "rule": { "*": [1] },
        "result": 1,
        "data": null
    },
    {
        "description": "Multiply with Single Operand, Direct (Number)",
        "rule": { "*": 1 },
        "result": 1,
        "data": null
    },
    {
        "description": "Multiply with Single Operand, Direct (0)",
        "rule": { "*": 0 },
        "result": 0,
        "data": null
    },
    {
        "description": "Multiply Operator with Single Operand (Number)",
        "rule": { "*": [1] },
        "result": 1,
        "data": null
    },
    {
        "description": "Multiply Operator with Single Operand (Negative Number)",
        "rule": { "*": [-1] },
        "result": -1,
        "data": null
    },
    {
        "description": "Multiply with zero operands is 1 (Product)",
        "rule": { "*": [] },
        "result": 1,
        "data": null
    },
    {
        "description": "Multiply Operator with Single Operand, Direct (Number)",
        "rule": { "*": 1 },
        "result": 1,
        "data": null
    },
    {
        "description": "Multiply Operator with Single Operand, Direct (0)",
        "rule": { "*": 0 },
        "result": 0,
        "data": null
    },
    {
        "description": "Multiply Operator with Single Operand (String)",
        "rule": { "*": ["1"] },
        "result": 1,
        "data": null
    },
    {
        "description": "Multiply Operator with Single Operand, Direct (Negative Number String)",
        "rule": { "*": "-1" },
        "result": -1,
        "data": null
    },

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