summaryrefslogtreecommitdiffstats
path: root/vendor/itertools/src/rciter_impl.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-19 09:26:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-19 09:26:03 +0000
commit9918693037dce8aa4bb6f08741b6812923486c18 (patch)
tree21d2b40bec7e6a7ea664acee056eb3d08e15a1cf /vendor/itertools/src/rciter_impl.rs
parentReleasing progress-linux version 1.75.0+dfsg1-5~progress7.99u1. (diff)
downloadrustc-9918693037dce8aa4bb6f08741b6812923486c18.tar.xz
rustc-9918693037dce8aa4bb6f08741b6812923486c18.zip
Merging upstream version 1.76.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/itertools/src/rciter_impl.rs')
-rw-r--r--vendor/itertools/src/rciter_impl.rs25
1 files changed, 14 insertions, 11 deletions
diff --git a/vendor/itertools/src/rciter_impl.rs b/vendor/itertools/src/rciter_impl.rs
index 7298350a8..e3b753206 100644
--- a/vendor/itertools/src/rciter_impl.rs
+++ b/vendor/itertools/src/rciter_impl.rs
@@ -1,10 +1,10 @@
-
-use std::iter::{FusedIterator, IntoIterator};
use alloc::rc::Rc;
use std::cell::RefCell;
+use std::iter::{FusedIterator, IntoIterator};
/// A wrapper for `Rc<RefCell<I>>`, that implements the `Iterator` trait.
#[derive(Debug)]
+#[must_use = "iterator adaptors are lazy and do nothing unless consumed"]
pub struct RcIter<I> {
/// The boxed iterator.
pub rciter: Rc<RefCell<I>>,
@@ -45,9 +45,12 @@ pub struct RcIter<I> {
/// `.next()`, i.e. if it somehow participates in an “iterator knot”
/// where it is an adaptor of itself.
pub fn rciter<I>(iterable: I) -> RcIter<I::IntoIter>
- where I: IntoIterator
+where
+ I: IntoIterator,
{
- RcIter { rciter: Rc::new(RefCell::new(iterable.into_iter())) }
+ RcIter {
+ rciter: Rc::new(RefCell::new(iterable.into_iter())),
+ }
}
impl<I> Clone for RcIter<I> {
@@ -55,7 +58,8 @@ impl<I> Clone for RcIter<I> {
}
impl<A, I> Iterator for RcIter<I>
- where I: Iterator<Item = A>
+where
+ I: Iterator<Item = A>,
{
type Item = A;
#[inline]
@@ -73,7 +77,8 @@ impl<A, I> Iterator for RcIter<I>
}
impl<I> DoubleEndedIterator for RcIter<I>
- where I: DoubleEndedIterator
+where
+ I: DoubleEndedIterator,
{
#[inline]
fn next_back(&mut self) -> Option<Self::Item> {
@@ -83,7 +88,8 @@ impl<I> DoubleEndedIterator for RcIter<I>
/// Return an iterator from `&RcIter<I>` (by simply cloning it).
impl<'a, I> IntoIterator for &'a RcIter<I>
- where I: Iterator
+where
+ I: Iterator,
{
type Item = I::Item;
type IntoIter = RcIter<I>;
@@ -93,7 +99,4 @@ impl<'a, I> IntoIterator for &'a RcIter<I>
}
}
-
-impl<A, I> FusedIterator for RcIter<I>
- where I: FusedIterator<Item = A>
-{}
+impl<A, I> FusedIterator for RcIter<I> where I: FusedIterator<Item = A> {}