# 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 = "tempfile"
version = "3.2.0"
authors = ["Steven Allen <steven@stebalien.com>", "The Rust Project Developers", "Ashley Mannix <ashleymannix@live.com.au>", "Jason White <jasonaw0@gmail.com>"]
exclude = ["/.travis.yml", "/appveyor.yml"]
description = "A library for managing temporary files and directories."
homepage = "http://stebalien.com/projects/tempfile-rs"
documentation = "https://docs.rs/tempfile"
keywords = ["tempfile", "tmpfile", "filesystem"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/Stebalien/tempfile"
[dependencies.cfg-if]
version = "1"

[dependencies.rand]
version = "0.8"

[dependencies.remove_dir_all]
version = "0.5"
[target."cfg(target_os = \"redox\")".dependencies.redox_syscall]
version = "0.2"
[target."cfg(unix)".dependencies.libc]
version = "0.2.27"
[target."cfg(windows)".dependencies.winapi]
version = "0.3"
features = ["fileapi", "handleapi", "winbase"]
