# 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 = "2024"
rust-version = "1.88.0"
name = "brush-builtins"
version = "0.2.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Builtins for a POSIX/bash shell (used by brush-shell)"
readme = "README.md"
keywords = [
    "cli",
    "shell",
    "sh",
    "bash",
    "script",
]
categories = [
    "command-line-utilities",
    "development-tools",
]
license = "MIT"
repository = "https://github.com/reubeno/brush"

[features]
"builtin.alias" = []
"builtin.bg" = []
"builtin.bind" = []
"builtin.break" = []
"builtin.builtin" = []
"builtin.caller" = []
"builtin.cd" = []
"builtin.colon" = []
"builtin.command" = []
"builtin.compgen" = []
"builtin.complete" = []
"builtin.compopt" = []
"builtin.continue" = []
"builtin.declare" = []
"builtin.dirs" = []
"builtin.dot" = []
"builtin.echo" = []
"builtin.enable" = []
"builtin.eval" = []
"builtin.exec" = []
"builtin.exit" = []
"builtin.export" = []
"builtin.false" = []
"builtin.fc" = []
"builtin.fg" = []
"builtin.getopts" = []
"builtin.hash" = []
"builtin.help" = []
"builtin.history" = []
"builtin.jobs" = []
"builtin.kill" = []
"builtin.let" = []
"builtin.mapfile" = []
"builtin.popd" = []
"builtin.printf" = []
"builtin.pushd" = []
"builtin.pwd" = []
"builtin.read" = []
"builtin.return" = []
"builtin.set" = []
"builtin.shift" = []
"builtin.shopt" = []
"builtin.suspend" = []
"builtin.test" = []
"builtin.times" = []
"builtin.trap" = []
"builtin.true" = []
"builtin.type" = []
"builtin.ulimit" = []
"builtin.umask" = []
"builtin.unalias" = []
"builtin.unset" = []
"builtin.wait" = []
default = [
    "builtin.alias",
    "builtin.bg",
    "builtin.bind",
    "builtin.break",
    "builtin.builtin",
    "builtin.caller",
    "builtin.cd",
    "builtin.colon",
    "builtin.command",
    "builtin.compgen",
    "builtin.compopt",
    "builtin.complete",
    "builtin.continue",
    "builtin.declare",
    "builtin.dirs",
    "builtin.dot",
    "builtin.echo",
    "builtin.enable",
    "builtin.eval",
    "builtin.exec",
    "builtin.exit",
    "builtin.export",
    "builtin.false",
    "builtin.fc",
    "builtin.fg",
    "builtin.getopts",
    "builtin.hash",
    "builtin.help",
    "builtin.history",
    "builtin.jobs",
    "builtin.kill",
    "builtin.let",
    "builtin.mapfile",
    "builtin.popd",
    "builtin.printf",
    "builtin.pushd",
    "builtin.pwd",
    "builtin.read",
    "builtin.return",
    "builtin.set",
    "builtin.shift",
    "builtin.shopt",
    "builtin.suspend",
    "builtin.test",
    "builtin.times",
    "builtin.trap",
    "builtin.true",
    "builtin.type",
    "builtin.ulimit",
    "builtin.umask",
    "builtin.unalias",
    "builtin.unset",
    "builtin.wait",
]

[lib]
name = "brush_builtins"
path = "src/lib.rs"
bench = false

[dependencies.brush-core]
version = "^0.5.0"

[dependencies.brush-parser]
version = "^0.4.0"

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

[dependencies.chrono]
version = "0.4.44"

[dependencies.clap]
version = "4.6.0"
features = [
    "derive",
    "wrap_help",
]

[dependencies.fancy-regex]
version = "0.17.0"

[dependencies.futures]
version = "0.3.32"

[dependencies.itertools]
version = "0.14.0"

[dependencies.strum]
version = "0.28.0"

[dependencies.strum_macros]
version = "0.28.0"

[dependencies.thiserror]
version = "2.0.18"

[dependencies.tracing]
version = "0.1.44"

[dev-dependencies.anyhow]
version = "1.0.102"

[dev-dependencies.pretty_assertions]
version = "1.4.1"
features = ["unstable"]

[target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies.procfs]
version = "0.18.0"

[target."cfg(any(unix, windows))".dependencies.tokio]
version = "1.50.0"
features = [
    "io-util",
    "macros",
    "process",
    "rt",
    "rt-multi-thread",
    "signal",
    "sync",
]

[target."cfg(any(unix, windows))".dependencies.uucore]
version = "0.8.0"
features = ["format"]
default-features = false

[target.'cfg(target_family = "wasm")'.dependencies.tokio]
version = "1.52.1"
features = [
    "io-util",
    "macros",
    "rt",
]

[target."cfg(unix)".dependencies.nix]
version = "0.31.2"
features = [
    "fs",
    "process",
    "resource",
    "poll",
    "signal",
    "term",
    "user",
]

[target."cfg(unix)".dependencies.rlimit]
version = "0.11.0"

[lints.clippy]
bool_to_int_with_if = "allow"
cognitive_complexity = "allow"
collapsible_else_if = "allow"
collapsible_if = "allow"
expect_used = "deny"
format_push_string = "deny"
if_not_else = "allow"
if_same_then_else = "allow"
match_same_arms = "allow"
missing_errors_doc = "allow"
multiple_crate_versions = "allow"
multiple_unsafe_ops_per_block = "deny"
must_use_candidate = "allow"
option_if_let_else = "allow"
panic = "deny"
panic_in_result_fn = "deny"
redundant_closure_for_method_calls = "allow"
redundant_else = "allow"
redundant_pub_crate = "allow"
result_large_err = "allow"
similar_names = "allow"
string_lit_chars_any = "deny"
string_slice = "deny"
struct_excessive_bools = "allow"
tests_outside_test_module = "deny"
todo = "deny"
undocumented_unsafe_blocks = "deny"
unwrap_in_result = "deny"
unwrap_used = "deny"

[lints.clippy.all]
level = "deny"
priority = -1

[lints.clippy.cargo]
level = "deny"
priority = -1

[lints.clippy.nursery]
level = "deny"
priority = -1

[lints.clippy.pedantic]
level = "deny"
priority = -1

[lints.clippy.perf]
level = "deny"
priority = -1

[lints.rust]
unnameable_types = "deny"
unsafe_op_in_unsafe_fn = "deny"
unused_attributes = "deny"
unused_lifetimes = "deny"
unused_macro_rules = "deny"

[lints.rust.future_incompatible]
level = "deny"
priority = 0

[lints.rust.missing_docs]
level = "deny"
priority = 0

[lints.rust.nonstandard_style]
level = "deny"
priority = 0

[lints.rust.rust_2018_idioms]
level = "deny"
priority = -1

[lints.rust.unknown_lints]
level = "allow"
priority = -100

[lints.rust.warnings]
level = "deny"
priority = 0

[lints.rustdoc.all]
level = "deny"
priority = -1