waddling-errors 0.7.3

Structured, secure-by-default diagnostic codes for distributed systems with no_std and role-based documentation
Documentation
[package]
name = "waddling-errors"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
description = "Structured, secure-by-default diagnostic codes for distributed systems with no_std and role-based documentation"
documentation = "https://docs.rs/waddling-errors"
readme = "README.md"
keywords = ["errors", "diagnostics", "observability", "no-std", "distributed"]
categories = ["development-tools::debugging", "no-std", "embedded"]

[dependencies]
# Macros (re-exported)
waddling-errors-macros = { version = "0.7", path = "../waddling-errors-macros", optional = true }

# Hash computation utilities (shared with proc macros)
waddling-errors-hash = { version = "0.7", path = "../waddling-errors-hash", optional = true, default-features = false }

# Optional serde for serialization
serde = { version = "1.0", default-features = false, features = ["derive", "alloc"], optional = true }

# Optional serde_json for doc generation
serde_json = { version = "1.0", optional = true }

# Paste for token concatenation (will be removed when proc macros fully replace declarative)
paste = { version = "1.0", optional = true }

# Optional ctor for automatic registration at initialization time
ctor = { version = "0.6", optional = true }

[dev-dependencies]
# For testing
serde_json = "1.0"

[features]
default = ["macros"]
macros = ["waddling-errors-macros"]
std = []
# Runtime hash computation (requires std + waddling-errors-hash with std)
# Note: Compile-time hash is always computed by proc-macros and stored as &'static str
# This feature is only needed for runtime hash computation methods like Code::hash()
runtime-hash = ["dep:waddling-errors-hash", "waddling-errors-hash?/std", "std"]
emoji = []
ansi-colors = []
metadata = ["dep:paste"]
doc-gen = ["std", "serde", "serde_json", "metadata", "runtime-hash"]
serde = ["dep:serde"]
auto-register = ["dep:ctor", "metadata", "std"]

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

[package.metadata.waddling-errors]
# Documentation generation configuration
doc_formats = ["json", "html"]
doc_output_dir = "target/doc"

# Hash configuration
hash_algorithm = "xxHash64"
hash_seed = "Waddling"

# Examples with feature requirements
[[example]]
name = "complete_system"
path = "examples/complete_system/main.rs"
required-features = ["metadata", "std", "runtime-hash"]  # doc-gen is optional - use --generate-docs flag

# Other examples use default features