# 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 believe there's an error in this file please file an
# issue against the rust-lang/cargo repository. If you're
# editing this file be aware that the upstream Cargo.toml
# will likely look very different (and much more reasonable)

[package]
name = "regex"
version = "1.1.0"
authors = ["The Rust Project Developers"]
exclude = ["/.travis.yml", "/appveyor.yml", "/ci/*", "/scripts/*"]
autotests = false
description = "An implementation of regular expressions for Rust. This implementation uses\nfinite automata and guarantees linear time matching on all inputs.\n"
homepage = "https://github.com/rust-lang/regex"
documentation = "https://docs.rs/regex"
readme = "README.md"
categories = ["text-processing"]
license = "MIT/Apache-2.0"
repository = "https://github.com/rust-lang/regex"
[profile.test]
debug = true

[profile.bench]
debug = true

[profile.release]
debug = true

[lib]
bench = false

[[test]]
name = "default"
path = "tests/test_default.rs"

[[test]]
name = "default-bytes"
path = "tests/test_default_bytes.rs"

[[test]]
name = "nfa"
path = "tests/test_nfa.rs"

[[test]]
name = "nfa-utf8bytes"
path = "tests/test_nfa_utf8bytes.rs"

[[test]]
name = "nfa-bytes"
path = "tests/test_nfa_bytes.rs"

[[test]]
name = "backtrack"
path = "tests/test_backtrack.rs"

[[test]]
name = "backtrack-utf8bytes"
path = "tests/test_backtrack_utf8bytes.rs"

[[test]]
name = "backtrack-bytes"
path = "tests/test_backtrack_bytes.rs"

[[test]]
name = "crates-regex"
path = "tests/test_crates_regex.rs"
[dependencies.aho-corasick]
version = "0.6.7"

[dependencies.memchr]
version = "2.0.2"

[dependencies.regex-syntax]
version = "0.6.2"

[dependencies.thread_local]
version = "0.3.6"

[dependencies.utf8-ranges]
version = "1.0.1"
[dev-dependencies.lazy_static]
version = "1"

[dev-dependencies.quickcheck]
version = "0.7"
default-features = false

[dev-dependencies.rand]
version = "0.5"

[features]
default = ["use_std"]
pattern = []
unstable = ["pattern"]
use_std = []
[badges.appveyor]
repository = "rust-lang-libs/regex"

[badges.travis-ci]
repository = "rust-lang/regex"
