add Option::{err_or,err_or_else}
methods under option_err_or
gate
#73040
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds 2 methods to
Option<T>
:err_or
(similar took_or
, signature isfn<T, O>(Option<T>, O) -> Result<T, O>
)err_or_else
(similar took_or_else
, signature isfn<T, O>(Option<T>, impl FnOnce() -> O) -> Result<T, O>
)Both under
option_err_or
feature gate.It seems unintuitive to have
ok_or
andok_or_else
, but noterr*
versions. This PR fills this gap inResult
<->Option
transformations.Those methods may be less useful, then their
ok*
versions, however, need for them comes every now and then.I'm curious if the name
err_or
is ok? Isn't It too similar toerror
?