Summary
This blog post introduces `erra`, a Rust crate designed for type-preserving error annotation with `Result<T, E>`. It addresses the common issue of losing call-site context when propagating errors using `?` while maintaining type fidelity. `erra` allows developers to annotate errors with context while keeping the original error type intact, making it useful for structured error handling without unnecessary runtime downcasting. The crate features zero dependencies, is compatible with `no_std`, and supports efficient compilation. The author seeks feedback on the API's composition with existing codebases.