NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #4524 most downloaded on crates.io
Flexible error definitions using macros and traits
Last release 5 years ago
no release in 18 months
Ships fairly regularly
a new release about every 2 weeks
Most releases are documented
notes for 8 of 11 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
11 releases · first in 2021
One column per quarter.
Use E: Display + Debug trait bound for ErrorTracer<E>
Use `E: Display + Debug` trait bound for `ErrorTracer<E>`
for eyre and anyhow tracers
E: Display + Debug + Send + Sync + 'static trait bound for ErrorTracer<E>
for eyre and anyhow tracers. The original E: std::error::Error + Send + Sync + 'static
trait bound do not work well when individual crates have std features disabled,
but had flex-error's std feature enabled somehow.Add into_detail and into_trace methods to error types defined by define_error!.
into_detail and into_trace methods to error types defined by define_error!.std::error::Error so that std do not need to be available in
user crate when define_error! is called.Make the Display implementation of error types use Debug to display error traces from eyre and other error tracers.
Display implementation of error types use Debug to display error traces
from eyre and other error tracers.The impl definition for std::Error is now generated based on whether the std feature is enabled on the flex-error crate, instead of the user crate tha
Breaking changes:
impl definition for std::error::Error is now generated based on whether
the std feature is enabled on the flex-error crate, instead of the user
crate that calls define_error.Define main error types in the form of struct Error(ErrorDetail, Trace) instead of the type alias type Error = ErrorReport .
Breaking changes:
Define main error types in the form of struct Error(ErrorDetail, Trace) instead of
the type alias type Error = ErrorReport<ErrorDetail, Trace>.
Remove auto derive of common traits such as Clone and Eq for the main error type.
Users can instead implement the traits explicitly since it is no longer a type alias.
Change the error constructor convention from error::constructor_error() to
error::Error::constructor().
Allow multiple attributes to be given to main and sub errors in define_error!.
Update structure of ErrorReport from ErrorReport { detail, trace } to ErrorReport(detail, trace) to allow simpler pattern matching.
Breaking changes:
Update structure of ErrorReport from ErrorReport { detail, trace } to ErrorReport(detail, trace)
to allow simpler pattern matching.
Auto derive common traits such as Clone and Eq for ErrorReport.
Allow recursive error source using Self.
Nothing published for this version
Update define syntax from define_error!{ Error; ... } to define_error!{ Error { ... } }
Breaking changes:
Update define syntax from define_error!{ Error; ... } to define_error!{ Error { ... } }
Allow custom derive attributes in the form of define_error!{ #[derive(Debug, ...)] Error { ... } }.
Nothing published for this version
Nothing published for this version
Initial draft release for flex-error.
Your coding agent can read these notes before it upgrades. Set up the MCP server →