//! Ending the expression with [`?`] will result in the [`Ok`]'s unwrapped value, unless the result
//! to the contents of the [`Result`] to produce a boolean value. If the [`Result`] does not have the expected variant
//! [undefined behavior]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html
//! [undefined behavior]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html
/// Converts from `Result<T, E>` (or `&mut Result<T, E>`) to `Result<&mut <T as DerefMut>::Target, &mut E>`.
/// Coerces the [`Ok`] variant of the original [`Result`] via [`DerefMut`](crate::ops::DerefMut)
/// For more detail on expect message styles and the reasoning behind our recommendation please
/// [try-operator]: https://doc.rust-lang.org/book/ch09-02-recoverable-errors-with-result.html#a-shortcut-for-propagating-errors-the--operator
/// [undefined behavior]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html
/// [undefined behavior]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html
// FIXME(const-hack): this implementation, which sidesteps using `Result::map` since it's not const
// FIXME(const-hack): this implementation, which sidesteps using `Result::map` since it's not const