# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2018"
name = "unicode-security"
version = "0.1.2"
authors = [
    "Charles Lew <crlf0710@gmail.com>",
    "Manish Goregaokar <manishsmail@gmail.com>",
]
build = false
exclude = [
    "target/*",
    "Cargo.lock",
]
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = """
Detect possible security problems with Unicode usage
according to Unicode Technical Standard #39 rules.
"""
homepage = "https://github.com/unicode-rs/unicode-security"
documentation = "https://docs.rs/unicode-security"
readme = "README.md"
keywords = [
    "text",
    "security",
    "unicode",
]
license = "MIT/Apache-2.0"
repository = "https://github.com/unicode-rs/unicode-security"

[lib]
name = "unicode_security"
path = "src/lib.rs"

[dependencies.compiler_builtins]
version = "0.1"
optional = true

[dependencies.core]
version = "1.0"
optional = true
package = "rustc-std-workspace-core"

[dependencies.std]
version = "1.0"
optional = true
package = "rustc-std-workspace-std"

[dependencies.unicode-normalization]
version = "0.1.12"
default-features = false

[dependencies.unicode-script]
version = "0.5.1"
default-features = false

[features]
bench = []
default = []
rustc-dep-of-std = [
    "std",
    "core",
    "compiler_builtins",
]
