From 604267088c9ef6afa021807b437dab22d72dfc99 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 16 Jun 2021 22:48:48 +0300 Subject: internal: add iterator to minicore --- crates/test_utils/src/minicore.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'crates/test_utils/src/minicore.rs') diff --git a/crates/test_utils/src/minicore.rs b/crates/test_utils/src/minicore.rs index e04ca58d2..011d460be 100644 --- a/crates/test_utils/src/minicore.rs +++ b/crates/test_utils/src/minicore.rs @@ -20,6 +20,7 @@ //! future: pin //! option: //! result: +//! iterator: option pub mod marker { // region:sized @@ -206,9 +207,38 @@ pub mod task { } // endregion:future +// region:iterator +pub mod iter { + mod traits { + mod iterator { + pub trait Iterator { + type Item; + #[lang = "next"] + fn next(&mut self) -> Option; + fn nth(&mut self, n: usize) -> Option { + loop {} + } + } + } + mod collect { + pub trait IntoIterator { + type Item; + type IntoIter: Iterator; + #[lang = "into_iter"] + fn into_iter(self) -> Self::IntoIter; + } + } + pub use self::collect::IntoIterator; + pub use self::iterator::Iterator; + } + pub use self::traits::{IntoIterator, Iterator}; +} +// endregion:iterator + pub mod prelude { pub mod v1 { pub use crate::{ + iter::{IntoIterator, Iterator}, // :iterator marker::Sized, // :sized ops::{Fn, FnMut, FnOnce}, // :fn option::Option::{self, None, Some}, // :option -- cgit v1.2.3