# 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]
edition = "2018"
name = "ignore"
version = "0.4.18"
authors = ["Andrew Gallant <jamslam@gmail.com>"]
description = "A fast library for efficiently matching ignore files such as `.gitignore`\nagainst file paths.\n"
homepage = "https://github.com/BurntSushi/ripgrep/tree/master/crates/ignore"
documentation = "https://docs.rs/ignore"
readme = "README.md"
keywords = ["glob", "ignore", "gitignore", "pattern", "file"]
license = "Unlicense/MIT"
repository = "https://github.com/BurntSushi/ripgrep/tree/master/crates/ignore"

[lib]
name = "ignore"
bench = false
[dependencies.crossbeam-utils]
version = "0.8.0"

[dependencies.globset]
version = "0.4.7"

[dependencies.lazy_static]
version = "1.1"

[dependencies.log]
version = "0.4.5"

[dependencies.memchr]
version = "2.1"

[dependencies.regex]
version = "1.1"

[dependencies.same-file]
version = "1.0.4"

[dependencies.thread_local]
version = "1"

[dependencies.walkdir]
version = "2.2.7"
[dev-dependencies.crossbeam-channel]
version = "0.5.0"

[features]
simd-accel = ["globset/simd-accel"]
[target."cfg(windows)".dependencies.winapi-util]
version = "0.1.2"
