{
  "id": "#",
  "title": "Cargo Doc Executor",
  "description": "A type definition for a Cargo/rust documentation executor schema",
  "properties": {
    "outputPath": {
      "title": "Output Path",
      "type": "string",
      "format": "path",
      "description": "The output path for the build",
      "id": "#outputPath",
      "default": "dist/{projectRoot}"
    },
    "package": {
      "title": "Cargo.toml Path",
      "type": "string",
      "format": "path",
      "description": "The path to the Cargo.toml file",
      "id": "#package",
      "default": "{projectRoot}/Cargo.toml"
    },
    "toolchain": {
      "title": "Toolchain",
      "description": "The type of toolchain to use for the build",
      "enum": [
        "stable",
        "beta",
        "nightly"
      ],
      "default": "stable",
      "id": "#toolchain",
      "type": "string"
    },
    "target": {
      "title": "Target",
      "type": "string",
      "description": "The target to build",
      "id": "#target"
    },
    "allTargets": {
      "title": "All Targets",
      "type": "boolean",
      "description": "Build all targets",
      "id": "#allTargets"
    },
    "profile": {
      "title": "Profile",
      "type": "string",
      "description": "The profile to build",
      "id": "#profile"
    },
    "release": {
      "title": "Release",
      "type": "boolean",
      "description": "Build in release mode",
      "id": "#release"
    },
    "features": {
      "title": "Features",
      "type": "string",
      "description": "The features to build",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ],
      "id": "#features"
    },
    "allFeatures": {
      "title": "All Features",
      "type": "boolean",
      "description": "Build all features",
      "id": "#allFeatures"
    },
    "lib": {
      "title": "Library",
      "type": "boolean",
      "description": "Generate documentation for the library",
      "id": "#lib",
      "properties": {
        "default": {
          "type": "boolean",
          "id": "#lib/default",
          "default": true
        }
      },
      "default": {
        "default": true
      }
    },
    "bins": {
      "title": "Bins",
      "type": "boolean",
      "description": "Generate documentation for the bins",
      "id": "#bins",
      "properties": {
        "default": {
          "type": "boolean",
          "id": "#bins/default",
          "default": true
        }
      },
      "default": {
        "default": true
      }
    },
    "examples": {
      "title": "Examples",
      "type": "boolean",
      "description": "Generate documentation for the examples",
      "id": "#examples",
      "properties": {
        "default": {
          "type": "boolean",
          "id": "#examples/default",
          "default": true
        }
      },
      "default": {
        "default": true
      }
    },
    "noDeps": {
      "title": "No Dependencies",
      "type": "boolean",
      "description": "Do not generate documentation for dependencies",
      "id": "#noDeps",
      "properties": {
        "default": {
          "type": "boolean",
          "id": "#noDeps/default",
          "default": false
        }
      },
      "default": {
        "default": false
      }
    }
  },
  "type": "object",
  "default": {
    "outputPath": "dist/{projectRoot}",
    "package": "{projectRoot}/Cargo.toml",
    "toolchain": "stable",
    "lib": {
      "default": true
    },
    "bins": {
      "default": true
    },
    "examples": {
      "default": true
    },
    "noDeps": {
      "default": false
    }
  }
}