Rollup merge of #126249 - workingjubilee:simplify-try-map-signature, r=scottmcm
Simplify `[T; N]::try_map` signature People keep making fun of this signature for being so gnarly. Associated type bounds admit a much simpler scribbling. r? ````@scottmcm````
This commit is contained in:
commit
4de77b6d8a
2 changed files with 5 additions and 5 deletions
|
@ -533,11 +533,9 @@ impl<T, const N: usize> [T; N] {
|
|||
/// assert_eq!(c, Some(a));
|
||||
/// ```
|
||||
#[unstable(feature = "array_try_map", issue = "79711")]
|
||||
pub fn try_map<F, R>(self, f: F) -> ChangeOutputType<R, [R::Output; N]>
|
||||
pub fn try_map<R>(self, f: impl FnMut(T) -> R) -> ChangeOutputType<R, [R::Output; N]>
|
||||
where
|
||||
F: FnMut(T) -> R,
|
||||
R: Try,
|
||||
R::Residual: Residual<[R::Output; N]>,
|
||||
R: Try<Residual: Residual<[R::Output; N]>>,
|
||||
{
|
||||
drain_array_with(self, |iter| try_from_trusted_iterator(iter.map(f)))
|
||||
}
|
||||
|
|
|
@ -363,7 +363,9 @@ pub trait Residual<O> {
|
|||
}
|
||||
|
||||
#[unstable(feature = "pub_crate_should_not_need_unstable_attr", issue = "none")]
|
||||
pub(crate) type ChangeOutputType<T, V> = <<T as Try>::Residual as Residual<V>>::TryType;
|
||||
#[allow(type_alias_bounds)]
|
||||
pub(crate) type ChangeOutputType<T: Try<Residual: Residual<V>>, V> =
|
||||
<T::Residual as Residual<V>>::TryType;
|
||||
|
||||
/// An adapter for implementing non-try methods via the `Try` implementation.
|
||||
///
|
||||
|
|
Loading…
Add table
Reference in a new issue