{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/cargo-mutants-config-yaml/latest.json",
  "title": "cargo-mutants config",
  "description": "cargo-mutants configuration, read by default from `.cargo/mutants.toml`.\n\nSee <https://mutants.rs/>.",
  "x-lintel": {
    "source": "https://www.schemastore.org/cargo-mutants-config.json",
    "sourceSha256": "858de4dc3b027246af7a791650cc86f3b12e588581e604c17ef2ea3b36673f51",
    "fileMatch": [
      "**/.cargo/mutants.toml"
    ],
    "parsers": [
      "toml"
    ]
  },
  "type": "object",
  "properties": {
    "additional_cargo_args": {
      "description": "Pass extra args to every cargo invocation.",
      "default": [],
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "additional_cargo_test_args": {
      "description": "Pass extra args to cargo test.",
      "default": [],
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "build_timeout_multiplier": {
      "description": "Build timeout multiplier, relative to the baseline 'cargo build'.",
      "default": null,
      "type": [
        "number",
        "null"
      ],
      "format": "double"
    },
    "cap_lints": {
      "description": "Pass `--cap-lints` to rustc.",
      "default": false,
      "type": "boolean"
    },
    "copy_vcs": {
      "description": "Copy `.git` and other VCS directories to the build directory.",
      "default": null,
      "type": [
        "boolean",
        "null"
      ]
    },
    "error_values": {
      "description": "Generate these error values from functions returning Result.",
      "default": [],
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "examine_globs": {
      "description": "Generate mutants from source files matching these globs.",
      "default": [],
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "examine_re": {
      "description": "Examine only mutants matching these regexps.",
      "default": [],
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "exclude_globs": {
      "description": "Exclude mutants from source files matching these globs.",
      "default": [],
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "exclude_re": {
      "description": "Exclude mutants from source files matches these regexps.",
      "default": [],
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "minimum_test_timeout": {
      "description": "Minimum test timeout, in seconds, as a floor on the autoset value.",
      "default": null,
      "type": [
        "number",
        "null"
      ],
      "format": "double"
    },
    "output": {
      "description": "Output directory.",
      "default": null,
      "type": [
        "string",
        "null"
      ]
    },
    "profile": {
      "description": "Cargo profile.",
      "default": null,
      "type": [
        "string",
        "null"
      ]
    },
    "skip_calls": {
      "description": "Skip calls to functions or methods with these names.\n\nThis is combined with values from the --skip-calls argument.",
      "default": [],
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "skip_calls_defaults": {
      "description": "Use built-in defaults for `skip_calls` in addition to any explicit values.",
      "default": null,
      "type": [
        "boolean",
        "null"
      ]
    },
    "test_package": {
      "description": "Run tests from these packages for all mutants.",
      "default": [],
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "test_tool": {
      "description": "Choice of test tool: cargo or nextest.",
      "anyOf": [
        {
          "$ref": "#/$defs/TestTool"
        },
        {
          "type": "null"
        }
      ]
    },
    "test_workspace": {
      "description": "Run tests from all packages in the workspace, not just the mutated package.\n\nOverrides `test_package`.",
      "default": null,
      "type": [
        "boolean",
        "null"
      ]
    },
    "timeout_multiplier": {
      "description": "Timeout multiplier, relative to the baseline 'cargo test'.",
      "default": null,
      "type": [
        "number",
        "null"
      ],
      "format": "double"
    }
  },
  "$defs": {
    "TestTool": {
      "description": "Choice of tool to use to run tests.",
      "oneOf": [
        {
          "description": "Use `cargo test`, the default.",
          "type": "string",
          "enum": [
            "cargo"
          ]
        },
        {
          "description": "Use `cargo nextest`.",
          "type": "string",
          "enum": [
            "nextest"
          ]
        }
      ]
    }
  },
  "additionalProperties": true
}
