Summary Add a built-in #[derive(Error)] macro to std::error, inspired by thiserror, to reduce boilerplate for custom error types. Motivation Most Rust projects need custom errors, but implementing std::error::Error, Display and From is verbose. thiserror solves this elegantly, but adds a dependency and cannot be used in all environments. Example #[derive(Error, Debug)] enum MyError { #[error("not found")] NotFound, #[error("IO error")] Io(#[from] std::io::Error), }