# 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.89"
name = "rootcause"
version = "0.9.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A flexible, ergonomic, and inspectable error reporting library for Rust"
documentation = "https://docs.rs/rootcause"
readme = "README.md"
keywords = [
    "error",
    "error-handling",
    "ergonomic",
    "library",
    "no_std",
]
categories = [
    "rust-patterns",
    "no-std",
]
license = "MIT/Apache-2.0"
repository = "https://github.com/rootcause-rs/rootcause"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[features]
anyhow = ["dep:anyhow"]
backtrace = [
    "dep:backtrace",
    "dep:regex",
    "std",
]
default = []
error-stack = ["dep:error-stack"]
eyre = ["dep:eyre"]
std = []

[lib]
name = "rootcause"
path = "src/lib.rs"

[[example]]
name = "anyhow_interop"
path = "examples/anyhow_interop.rs"
required-features = ["anyhow"]

[[example]]
name = "anyhow_migration"
path = "examples/anyhow_migration.rs"
required-features = ["anyhow"]

[[example]]
name = "basic"
path = "examples/basic.rs"

[[example]]
name = "batch_processing"
path = "examples/batch_processing.rs"

[[example]]
name = "conditional_formatting"
path = "examples/conditional_formatting.rs"

[[example]]
name = "custom_attachments"
path = "examples/custom_attachments.rs"

[[example]]
name = "custom_errors"
path = "examples/custom_errors.rs"

[[example]]
name = "custom_handler"
path = "examples/custom_handler.rs"

[[example]]
name = "derive_more_interop"
path = "examples/derive_more_interop.rs"

[[example]]
name = "error_coercion"
path = "examples/error_coercion.rs"

[[example]]
name = "error_stack_interop"
path = "examples/error_stack_interop.rs"
required-features = ["error-stack"]

[[example]]
name = "eyre_interop"
path = "examples/eyre_interop.rs"
required-features = ["eyre"]

[[example]]
name = "formatting_hooks"
path = "examples/formatting_hooks.rs"

[[example]]
name = "inspecting_errors"
path = "examples/inspecting_errors.rs"

[[example]]
name = "lazy_evaluation"
path = "examples/lazy_evaluation.rs"

[[example]]
name = "report_creation_hook"
path = "examples/report_creation_hook.rs"

[[example]]
name = "retry_with_collection"
path = "examples/retry_with_collection.rs"

[[example]]
name = "thiserror_interop"
path = "examples/thiserror_interop.rs"

[[example]]
name = "typed_reports"
path = "examples/typed_reports.rs"

[dependencies.anyhow]
version = "1.0.100"
optional = true
default-features = false

[dependencies.backtrace]
version = "0.3.76"
features = [
    "std",
    "cpp_demangle",
]
optional = true
default-features = false

[dependencies.error-stack]
version = "0.6.0"
optional = true
default-features = false

[dependencies.eyre]
version = "0.6.12"
optional = true
default-features = false

[dependencies.hashbrown]
version = "0.16.0"
default-features = false

[dependencies.indexmap]
version = "2.12.0"
default-features = false

[dependencies.regex]
version = "1.12.2"
optional = true
default-features = false

[dependencies.rootcause-internals]
version = "=0.9.0"

[dependencies.rustc-hash]
version = "2.1.1"
default-features = false

[dependencies.spin]
version = "0.10.0"
features = ["rwlock"]
default-features = false

[dependencies.triomphe]
version = "0.1.15"
features = ["unsize"]
default-features = false

[dependencies.unsize]
version = "1.1.0"
default-features = false

[dev-dependencies.derive_more]
version = "2.0"
features = [
    "error",
    "from",
    "display",
]
default-features = false

[dev-dependencies.eyre]
version = "0.6.12"
features = ["auto-install"]

[dev-dependencies.indexmap]
version = "2.12.0"

[dev-dependencies.serde_json]
version = "1.0.145"

[dev-dependencies.static_assertions]
version = "1.1.0"

[dev-dependencies.thiserror]
version = "2.0.17"

[lints.rust.unexpected_cfgs]
level = "allow"
priority = 0
check-cfg = ["cfg(nightly_extra_checks)"]
