mirror of https://github.com/rust-lang/rfcs.git
1.4 KiB
1.4 KiB
- Feature Name:
result_expect
- Start Date: 2015-05-13
- RFC PR: rust-lang/rfcs#1119
- Rust Issue: rust-lang/rust#25359
Summary
Add an expect
method to the Result type, bounded to E: Debug
Motivation
While Result::unwrap
exists, it does not allow annotating the panic message with the operation
attempted (e.g. what file was being opened). This is at odds to 'Option' which includes both
unwrap
and expect
(with the latter taking an arbitrary failure message).
Detailed design
Add a new method to the same impl
block as Result::unwrap
that takes a &str
message and
returns T
if the Result
was Ok
. If the Result
was Err
, it panics with both the provided
message and the error value.
The format of the error message is left undefined in the documentation, but will most likely be the following
panic!("{}: {:?}", msg, e)
Drawbacks
- It involves adding a new method to a core rust type.
- The panic message format is less obvious than it is with
Option::expect
(where the panic message is the message passed)
Alternatives
- We are perfectly free to not do this.
- A macro could be introduced to fill the same role (which would allow arbitrary formatting of the panic message).
Unresolved questions
Are there any issues with the proposed format of the panic string?