# 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 = "parking_lot_core"
version = "0.8.3"
authors = ["Amanieu d'Antras <amanieu@gmail.com>"]
description = "An advanced API for creating custom synchronization primitives."
keywords = ["mutex", "condvar", "rwlock", "once", "thread"]
categories = ["concurrency"]
license = "Apache-2.0/MIT"
repository = "https://github.com/Amanieu/parking_lot"
[dependencies.backtrace]
version = "0.3.49"
optional = true

[dependencies.cfg-if]
version = "1.0.0"

[dependencies.instant]
version = "0.1.4"

[dependencies.petgraph]
version = "0.5.1"
optional = true

[dependencies.smallvec]
version = "1.6.1"

[dependencies.thread-id]
version = "3.3.0"
optional = true

[features]
deadlock_detection = ["petgraph", "thread-id", "backtrace"]
nightly = []
[target."cfg(target_os = \"redox\")".dependencies.redox_syscall]
version = "0.2.4"
[target."cfg(unix)".dependencies.libc]
version = "0.2.71"
[target."cfg(windows)".dependencies.winapi]
version = "0.3.8"
features = ["winnt", "ntstatus", "minwindef", "winerror", "winbase", "errhandlingapi", "handleapi"]
