###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
#     fx update-rustc-third-party
###############################################################################

load("@rules_rust//rust:defs.bzl", "rust_library")
load("@rules_license//rules:license.bzl", "license")
load("@rules_license//rules:package_info.bzl", "package_info")

package(
    default_package_metadata = [
        ":license",
        ":package_info",
    ],
    default_visibility = ["//visibility:public"],
)

package_info(
    name = "package_info",
    package_name = "regex-syntax",
    package_url = "https://github.com/rust-lang/regex/tree/master/regex-syntax",
    package_version = "0.8.5",
)

license(
    name = "license",
    license_kinds = [
        "@rules_license//licenses/spdx:Apache-2.0",
        "@rules_license//licenses/spdx:MIT",
    ],
    license_text = "LICENSE-APACHE",
)

rust_library(
    name = "regex_syntax",
    srcs = glob(
        include = ["**/*.rs"],
        allow_empty = False,
    ),
    compile_data = glob(
        include = ["**"],
        allow_empty = True,
        exclude = [
            "**/* *",
            ".tmp_git_root/**/*",
            "BUILD",
            "BUILD.bazel",
            "WORKSPACE",
            "WORKSPACE.bazel",
        ],
    ),
    crate_features = [
        "default",
        "std",
        "unicode",
        "unicode-age",
        "unicode-bool",
        "unicode-case",
        "unicode-gencat",
        "unicode-perl",
        "unicode-script",
        "unicode-segment",
    ],
    crate_root = "src/lib.rs",
    edition = "2021",
    rustc_flags = [
        "--cap-lints=allow",
    ],
    tags = [
        "cargo-bazel",
        "crate-name=regex-syntax",
        "manual",
        "noclippy",
        "norustfmt",
    ],
    target_compatible_with = select({
        "@rules_rust//rust/platform:aarch64-apple-darwin": [],
        "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
        "@rules_rust//rust/platform:x86_64-apple-darwin": [],
        "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
        "//conditions:default": ["@platforms//:incompatible"],
    }),
    version = "0.8.5",
)
