Skip to content

Commit eb03ea4

Browse files
committed
Revert "implement and test Iterator::{exactly_one, collect_array}"
This reverts commit 699184b.
1 parent 9b82a4f commit eb03ea4

File tree

1 file changed

+0
-56
lines changed

1 file changed

+0
-56
lines changed

library/core/src/iter/traits/iterator.rs

Lines changed: 0 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -4034,62 +4034,6 @@ pub trait Iterator {
40344034
{
40354035
unreachable!("Always specialized");
40364036
}
4037-
4038-
/// Checks if the iterator contains *exactly* one element.
4039-
/// If so, returns this one element.
4040-
///
4041-
/// See also [`collect_array`](Iterator::collect_array) for lengths other than `1`.
4042-
///
4043-
/// # Examples
4044-
///
4045-
/// ```
4046-
/// #![feature(exact_length_collection)]
4047-
///
4048-
/// assert_eq!([1].into_iter().exactly_one(), Some(1));
4049-
/// assert_eq!([].into_iter().exactly_one(), None::<()>);
4050-
///
4051-
/// // There is exactly one even integer in the array:
4052-
/// assert_eq!([1, 2, 3].into_iter().filter(|x| x % 2 == 0).exactly_one(), Some(2));
4053-
/// // But there are two odds, which is too many:
4054-
/// assert_eq!([1, 2, 3].into_iter().filter(|x| x % 2 == 1).exactly_one(), None);
4055-
/// ```
4056-
#[inline]
4057-
#[unstable(feature = "exact_length_collection", issue = "149266")]
4058-
fn exactly_one(self) -> Option<Self::Item>
4059-
where
4060-
Self: Sized,
4061-
{
4062-
self.collect_array::<1>().map(|[i]| i)
4063-
}
4064-
4065-
/// Checks if an iterator has *exactly* `N` elements.
4066-
/// If so, returns those `N` elements in an array.
4067-
///
4068-
/// See also [`exactly_one`](Iterator::exactly_one) when expecting a single element.
4069-
///
4070-
/// # Examples
4071-
///
4072-
/// ```
4073-
/// #![feature(exact_length_collection)]
4074-
///
4075-
/// assert_eq!([1, 2, 3, 4].into_iter().collect_array(), Some([1, 2, 3, 4]));
4076-
/// assert_eq!([1, 2].into_iter().chain([3, 4]).collect_array(), Some([1, 2, 3, 4]));
4077-
///
4078-
/// // Iterator contains too few elements:
4079-
/// assert_eq!([1, 2].into_iter().collect_array::<4>(), None);
4080-
/// // Iterator contains too many elements:
4081-
/// assert_eq!([1, 2, 3, 4, 5].into_iter().collect_array::<4>(), None);
4082-
/// // Taking 4 makes it work again:
4083-
/// assert_eq!([1, 2, 3, 4, 5].into_iter().take(4).collect_array(), Some([1, 2, 3, 4]));
4084-
/// ```
4085-
#[inline]
4086-
#[unstable(feature = "exact_length_collection", issue = "149266")]
4087-
fn collect_array<const N: usize>(mut self) -> Option<[Self::Item; N]>
4088-
where
4089-
Self: Sized,
4090-
{
4091-
self.next_chunk().ok().filter(|_| self.next().is_none())
4092-
}
40934037
}
40944038

40954039
trait SpecIterEq<B: Iterator>: Iterator {

0 commit comments

Comments
 (0)