summaryrefslogtreecommitdiffstats
path: root/library/core/src/iter/adapters/copied.rs
diff options
context:
space:
mode:
Diffstat (limited to 'library/core/src/iter/adapters/copied.rs')
-rw-r--r--library/core/src/iter/adapters/copied.rs19
1 files changed, 17 insertions, 2 deletions
diff --git a/library/core/src/iter/adapters/copied.rs b/library/core/src/iter/adapters/copied.rs
index 62d3afb81..8f6b2904e 100644
--- a/library/core/src/iter/adapters/copied.rs
+++ b/library/core/src/iter/adapters/copied.rs
@@ -4,6 +4,7 @@ use crate::iter::adapters::{
use crate::iter::{FusedIterator, TrustedLen};
use crate::mem::MaybeUninit;
use crate::mem::SizedTypeProperties;
+use crate::num::NonZeroUsize;
use crate::ops::Try;
use crate::{array, ptr};
@@ -89,7 +90,7 @@ where
}
#[inline]
- fn advance_by(&mut self, n: usize) -> Result<(), usize> {
+ fn advance_by(&mut self, n: usize) -> Result<(), NonZeroUsize> {
self.it.advance_by(n)
}
@@ -130,7 +131,7 @@ where
}
#[inline]
- fn advance_back_by(&mut self, n: usize) -> Result<(), usize> {
+ fn advance_back_by(&mut self, n: usize) -> Result<(), NonZeroUsize> {
self.it.advance_back_by(n)
}
}
@@ -240,3 +241,17 @@ where
}
}
}
+
+#[stable(feature = "default_iters", since = "1.70.0")]
+impl<I: Default> Default for Copied<I> {
+ /// Creates a `Copied` iterator from the default value of `I`
+ /// ```
+ /// # use core::slice;
+ /// # use core::iter::Copied;
+ /// let iter: Copied<slice::Iter<'_, u8>> = Default::default();
+ /// assert_eq!(iter.len(), 0);
+ /// ```
+ fn default() -> Self {
+ Self::new(Default::default())
+ }
+}