waddling-errors 0.7.2

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