[package]
edition = "2024"
rust-version = "1.89"
name = "rootcause"
version = "0.12.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]
compat-anyhow1 = ["dep:anyhow"]
compat-error-stack05 = ["dep:error-stack05"]
compat-error-stack06 = ["dep:error-stack"]
compat-eyre06 = ["dep:eyre"]
default = []
[lib]
name = "rootcause"
path = "src/lib.rs"
[[example]]
name = "anyhow_interop"
path = "examples/anyhow_interop.rs"
required-features = ["compat-anyhow1"]
[[example]]
name = "anyhow_migration"
path = "examples/anyhow_migration.rs"
required-features = ["compat-anyhow1"]
[[example]]
name = "basic"
path = "examples/basic.rs"
[[example]]
name = "batch_processing"
path = "examples/batch_processing.rs"
[[example]]
name = "boxed_error_interop"
path = "examples/boxed_error_interop.rs"
[[example]]
name = "conditional_formatting"
path = "examples/conditional_formatting.rs"
[[example]]
name = "context_methods"
path = "examples/context_methods.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 = ["compat-error-stack06"]
[[example]]
name = "eyre_interop"
path = "examples/eyre_interop.rs"
required-features = ["compat-eyre06"]
[[example]]
name = "following_error_sources"
path = "examples/following_error_sources.rs"
[[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.error-stack]
version = "0.6.0"
optional = true
default-features = false
[dependencies.error-stack05]
version = "0.5.0"
optional = true
default-features = false
package = "error-stack"
[dependencies.eyre]
version = "0.6.12"
optional = true
default-features = false
[dependencies.hashbrown]
version = "0.16.0"
default-features = false
[dependencies.indexmap]
version = "2.13.0"
default-features = false
[dependencies.rootcause-internals]
version = "=0.12.0"
[dependencies.rustc-hash]
version = "2.1.1"
default-features = false
[dependencies.triomphe]
version = "0.1.15"
default-features = false
[dev-dependencies.derive_more]
version = "2.1.0"
features = [
"error",
"from",
"display",
]
default-features = false
[dev-dependencies.eyre]
version = "0.6.12"
features = ["auto-install"]
[dev-dependencies.indexmap]
version = "2.13.0"
[dev-dependencies.reqwest]
version = "0.13.2"
[dev-dependencies.serde_json]
version = "1.0.145"
[dev-dependencies.static_assertions]
version = "1.1.0"
[dev-dependencies.thiserror]
version = "2.0.17"
[dev-dependencies.tokio]
version = "1.49.0"
features = [
"macros",
"rt-multi-thread",
]
[dev-dependencies.tracing]
version = "0.1.44"
features = ["attributes"]
[dev-dependencies.tracing-subscriber]
version = "0.3.22"
features = ["registry"]
[lints.rust.unexpected_cfgs]
level = "allow"
priority = 0
check-cfg = ["cfg(nightly_extra_checks)"]