sickle 0.2.0

A robust Rust parser for CCL (Categorical Configuration Language) with Serde support
Documentation
{
  "$schema": "https://raw.githubusercontent.com/CatConfLang/ccl-test-data/v0.6.0/schemas/generated-format.json",
  "tests": [
    {
      "behaviors": [],
      "expected": {
        "count": 1,
        "value": true
      },
      "features": [],
      "functions": [
        "compose_associative"
      ],
      "inputs": [
        "a = 1",
        "b = 2",
        "c = 3"
      ],
      "name": "semigroup_associativity_basic_compose_associative",
      "source_test": "semigroup_associativity_basic",
      "validation": "compose_associative",
      "variants": []
    },
    {
      "behaviors": [],
      "expected": {
        "count": 1,
        "value": true
      },
      "features": [],
      "functions": [
        "compose_associative"
      ],
      "inputs": [
        "config =\n  host = localhost",
        "config =\n  port = 8080",
        "db =\n  name = test"
      ],
      "name": "semigroup_associativity_nested_compose_associative",
      "source_test": "semigroup_associativity_nested",
      "validation": "compose_associative",
      "variants": []
    },
    {
      "behaviors": [],
      "expected": {
        "count": 1,
        "value": true
      },
      "features": [
        "empty_keys"
      ],
      "functions": [
        "compose_associative"
      ],
      "inputs": [
        "= item1",
        "= item2",
        "= item3"
      ],
      "name": "semigroup_associativity_lists_compose_associative",
      "source_test": "semigroup_associativity_lists",
      "validation": "compose_associative",
      "variants": []
    },
    {
      "behaviors": [],
      "expected": {
        "count": 1,
        "value": true
      },
      "features": [],
      "functions": [
        "identity_left"
      ],
      "inputs": [
        "",
        "key = value\nnested =\n  sub = val"
      ],
      "name": "monoid_left_identity_basic_identity_left",
      "source_test": "monoid_left_identity_basic",
      "validation": "identity_left",
      "variants": []
    },
    {
      "behaviors": [],
      "expected": {
        "count": 1,
        "value": true
      },
      "features": [],
      "functions": [
        "identity_right"
      ],
      "inputs": [
        "key = value\nnested =\n  sub = val",
        ""
      ],
      "name": "monoid_right_identity_basic_identity_right",
      "source_test": "monoid_right_identity_basic",
      "validation": "identity_right",
      "variants": []
    },
    {
      "behaviors": [],
      "expected": {
        "count": 1,
        "value": true
      },
      "features": [],
      "functions": [
        "identity_left"
      ],
      "inputs": [
        "",
        "config =\n  database =\n    host = localhost\n    port = 5432\n  cache =\n    redis = true"
      ],
      "name": "monoid_left_identity_nested_identity_left",
      "source_test": "monoid_left_identity_nested",
      "validation": "identity_left",
      "variants": []
    },
    {
      "behaviors": [],
      "expected": {
        "count": 1,
        "value": true
      },
      "features": [],
      "functions": [
        "identity_right"
      ],
      "inputs": [
        "config =\n  database =\n    host = localhost\n    port = 5432\n  cache =\n    redis = true",
        ""
      ],
      "name": "monoid_right_identity_nested_identity_right",
      "source_test": "monoid_right_identity_nested",
      "validation": "identity_right",
      "variants": []
    },
    {
      "behaviors": [],
      "expected": {
        "count": 1,
        "value": true
      },
      "features": [
        "empty_keys"
      ],
      "functions": [
        "identity_left"
      ],
      "inputs": [
        "",
        "= item1\n= item2\n= item3"
      ],
      "name": "monoid_left_identity_lists_identity_left",
      "source_test": "monoid_left_identity_lists",
      "validation": "identity_left",
      "variants": []
    },
    {
      "behaviors": [],
      "expected": {
        "count": 1,
        "value": true
      },
      "features": [
        "empty_keys"
      ],
      "functions": [
        "identity_right"
      ],
      "inputs": [
        "= item1\n= item2\n= item3",
        ""
      ],
      "name": "monoid_right_identity_lists_identity_right",
      "source_test": "monoid_right_identity_lists",
      "validation": "identity_right",
      "variants": []
    },
    {
      "behaviors": [],
      "expected": {
        "count": 2,
        "entries": [
          {
            "key": "key",
            "value": "value"
          },
          {
            "key": "another",
            "value": "test"
          }
        ]
      },
      "features": [],
      "functions": [
        "parse"
      ],
      "inputs": [
        "key = value\nanother = test"
      ],
      "name": "round_trip_property_basic_parse",
      "source_test": "round_trip_property_basic",
      "validation": "parse",
      "variants": []
    },
    {
      "behaviors": [],
      "expected": {
        "count": 1,
        "value": "key = value\nanother = test"
      },
      "features": [],
      "functions": [
        "print"
      ],
      "inputs": [
        "key = value\nanother = test"
      ],
      "name": "round_trip_property_basic_print",
      "source_test": "round_trip_property_basic",
      "validation": "print",
      "variants": []
    },
    {
      "behaviors": [],
      "expected": {
        "count": 1,
        "value": true
      },
      "features": [],
      "functions": [
        "parse",
        "print"
      ],
      "inputs": [
        "key = value\nanother = test"
      ],
      "name": "round_trip_property_basic_round_trip",
      "source_test": "round_trip_property_basic",
      "validation": "round_trip",
      "variants": []
    },
    {
      "behaviors": [],
      "expected": {
        "count": 1,
        "entries": [
          {
            "key": "config",
            "value": "\n  host = localhost\n  port = 8080\n  db =\n    name = mydb\n    user = admin"
          }
        ]
      },
      "features": [],
      "functions": [
        "parse"
      ],
      "inputs": [
        "config =\n  host = localhost\n  port = 8080\n  db =\n    name = mydb\n    user = admin"
      ],
      "name": "round_trip_property_nested_parse",
      "source_test": "round_trip_property_nested",
      "validation": "parse",
      "variants": []
    },
    {
      "behaviors": [],
      "expected": {
        "count": 1,
        "value": "config = \n  host = localhost\n  port = 8080\n  db =\n    name = mydb\n    user = admin"
      },
      "features": [],
      "functions": [
        "print"
      ],
      "inputs": [
        "config =\n  host = localhost\n  port = 8080\n  db =\n    name = mydb\n    user = admin"
      ],
      "name": "round_trip_property_nested_print",
      "source_test": "round_trip_property_nested",
      "validation": "print",
      "variants": []
    },
    {
      "behaviors": [],
      "expected": {
        "count": 1,
        "value": true
      },
      "features": [],
      "functions": [
        "parse",
        "print"
      ],
      "inputs": [
        "config =\n  host = localhost\n  port = 8080\n  db =\n    name = mydb\n    user = admin"
      ],
      "name": "round_trip_property_nested_round_trip",
      "source_test": "round_trip_property_nested",
      "validation": "round_trip",
      "variants": []
    },
    {
      "behaviors": [],
      "expected": {
        "count": 4,
        "entries": [
          {
            "key": "",
            "value": "item1"
          },
          {
            "key": "",
            "value": "item2"
          },
          {
            "key": "config",
            "value": "\n  nested =\n    deep = value\n  list =\n    = a\n    = b\n    = c"
          },
          {
            "key": "final",
            "value": "end"
          }
        ]
      },
      "features": [
        "empty_keys"
      ],
      "functions": [
        "parse"
      ],
      "inputs": [
        "= item1\n= item2\nconfig =\n  nested =\n    deep = value\n  list =\n    = a\n    = b\n    = c\nfinal = end"
      ],
      "name": "round_trip_property_complex_parse",
      "source_test": "round_trip_property_complex",
      "validation": "parse",
      "variants": []
    },
    {
      "behaviors": [],
      "expected": {
        "count": 1,
        "value": " = item1\n = item2\nconfig = \n  nested =\n    deep = value\n  list =\n    = a\n    = b\n    = c\nfinal = end"
      },
      "features": [
        "empty_keys"
      ],
      "functions": [
        "print"
      ],
      "inputs": [
        "= item1\n= item2\nconfig =\n  nested =\n    deep = value\n  list =\n    = a\n    = b\n    = c\nfinal = end"
      ],
      "name": "round_trip_property_complex_print",
      "source_test": "round_trip_property_complex",
      "validation": "print",
      "variants": []
    },
    {
      "behaviors": [],
      "expected": {
        "count": 1,
        "value": true
      },
      "features": [
        "empty_keys"
      ],
      "functions": [
        "parse",
        "print"
      ],
      "inputs": [
        "= item1\n= item2\nconfig =\n  nested =\n    deep = value\n  list =\n    = a\n    = b\n    = c\nfinal = end"
      ],
      "name": "round_trip_property_complex_round_trip",
      "source_test": "round_trip_property_complex",
      "validation": "round_trip",
      "variants": []
    }
  ]
}