# 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"
rust-version = "1.48"
name = "is-terminal"
version = "0.4.5"
authors = [
    "softprops <d.tangren@gmail.com>",
    "Dan Gohman <dev@sunfishcode.online>",
]
include = [
    "src",
    "build.rs",
    "Cargo.toml",
    "COPYRIGHT",
    "LICENSE*",
    "/*.md",
]
description = "Test whether a given stream is a terminal"
documentation = "http://docs.rs/is-terminal"
readme = "README.md"
keywords = [
    "terminal",
    "tty",
    "isatty",
]
categories = ["command-line-interface"]
license = "MIT"
repository = "https://github.com/sunfishcode/is-terminal"

[dependencies.io-lifetimes]
version = "1.0.0"

[dev-dependencies.atty]
version = "0.2.14"

[target."cfg(any(unix, target_os = \"wasi\"))".dev-dependencies.libc]
version = "0.2.110"

[target."cfg(not(any(windows, target_os = \"hermit\", target_os = \"unknown\")))".dependencies.rustix]
version = "0.36.4"
features = ["termios"]

[target."cfg(target_os = \"hermit\")".dependencies.hermit-abi]
version = "0.3.0"

[target."cfg(windows)".dependencies.windows-sys]
version = "0.45.0"
features = [
    "Win32_Foundation",
    "Win32_Storage_FileSystem",
    "Win32_System_Console",
]

[target."cfg(windows)".dev-dependencies.tempfile]
version = "3"
