core: merge DoubleEndedIteratorExt into IteratorExt
This commit is contained in:
parent
6c0ad5b564
commit
de1446680c
|
@ -110,7 +110,7 @@ mod prelude {
|
|||
pub use core::iter::range;
|
||||
pub use core::iter::{FromIterator, Extend, IteratorExt};
|
||||
pub use core::iter::{Iterator, DoubleEndedIterator, RandomAccessIterator};
|
||||
pub use core::iter::{IteratorCloneExt, CloneIteratorExt, DoubleEndedIteratorExt};
|
||||
pub use core::iter::{IteratorCloneExt, CloneIteratorExt};
|
||||
pub use core::iter::{IteratorOrdExt, MutableDoubleEndedIterator, ExactSizeIterator};
|
||||
pub use core::kinds::{Copy, Send, Sized, Sync};
|
||||
pub use core::mem::drop;
|
||||
|
|
|
@ -1449,7 +1449,7 @@ pub mod raw {
|
|||
mod tests {
|
||||
use std::boxed::Box;
|
||||
use prelude::{Some, None, range, Vec, ToString, Clone, Greater, Less, Equal};
|
||||
use prelude::{SliceExt, Iterator, IteratorExt, DoubleEndedIteratorExt};
|
||||
use prelude::{SliceExt, Iterator, IteratorExt};
|
||||
use prelude::AsSlice;
|
||||
use prelude::{RandomAccessIterator, Ord, SliceConcatExt};
|
||||
use core::cell::Cell;
|
||||
|
|
|
@ -3278,7 +3278,7 @@ mod tests {
|
|||
#[cfg(test)]
|
||||
mod bench {
|
||||
use super::*;
|
||||
use prelude::{SliceExt, IteratorExt, DoubleEndedIteratorExt, SliceConcatExt};
|
||||
use prelude::{SliceExt, IteratorExt, SliceConcatExt};
|
||||
use test::Bencher;
|
||||
use test::black_box;
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ pub use self::SignFormat::*;
|
|||
use char;
|
||||
use char::Char;
|
||||
use fmt;
|
||||
use iter::{range, DoubleEndedIteratorExt};
|
||||
use iter::{IteratorExt, range};
|
||||
use num::{cast, Float, ToPrimitive};
|
||||
use num::FpCategory as Fp;
|
||||
use ops::FnOnce;
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#![allow(unsigned_negation)]
|
||||
|
||||
use fmt;
|
||||
use iter::DoubleEndedIteratorExt;
|
||||
use iter::IteratorExt;
|
||||
use num::{Int, cast};
|
||||
use slice::SliceExt;
|
||||
use str;
|
||||
|
|
|
@ -719,6 +719,24 @@ pub trait IteratorExt: Iterator + Sized {
|
|||
}
|
||||
}).map(|(x, _)| x)
|
||||
}
|
||||
|
||||
/// Change the direction of the iterator
|
||||
///
|
||||
/// The flipped iterator swaps the ends on an iterator that can already
|
||||
/// be iterated from the front and from the back.
|
||||
///
|
||||
///
|
||||
/// If the iterator also implements RandomAccessIterator, the flipped
|
||||
/// iterator is also random access, with the indices starting at the back
|
||||
/// of the original iterator.
|
||||
///
|
||||
/// Note: Random access with flipped indices still only applies to the first
|
||||
/// `uint::MAX` elements of the original iterator.
|
||||
#[inline]
|
||||
#[stable]
|
||||
fn rev(self) -> Rev<Self> {
|
||||
Rev{iter: self}
|
||||
}
|
||||
}
|
||||
|
||||
#[unstable = "trait is unstable"]
|
||||
|
@ -772,31 +790,6 @@ pub trait DoubleEndedIterator: Iterator {
|
|||
fn next_back(&mut self) -> Option< <Self as Iterator>::Item>;
|
||||
}
|
||||
|
||||
/// Extension methods for double-ended iterators.
|
||||
#[unstable = "new extension trait convention"]
|
||||
pub trait DoubleEndedIteratorExt: DoubleEndedIterator + Sized {
|
||||
/// Change the direction of the iterator
|
||||
///
|
||||
/// The flipped iterator swaps the ends on an iterator that can already
|
||||
/// be iterated from the front and from the back.
|
||||
///
|
||||
///
|
||||
/// If the iterator also implements RandomAccessIterator, the flipped
|
||||
/// iterator is also random access, with the indices starting at the back
|
||||
/// of the original iterator.
|
||||
///
|
||||
/// Note: Random access with flipped indices still only applies to the first
|
||||
/// `uint::MAX` elements of the original iterator.
|
||||
#[inline]
|
||||
#[stable]
|
||||
fn rev(self) -> Rev<Self> {
|
||||
Rev{iter: self}
|
||||
}
|
||||
}
|
||||
|
||||
#[unstable = "trait is unstable"]
|
||||
impl<I> DoubleEndedIteratorExt for I where I: DoubleEndedIterator {}
|
||||
|
||||
/// A double-ended iterator yielding mutable references
|
||||
#[experimental = "not widely used"]
|
||||
pub trait MutableDoubleEndedIterator {
|
||||
|
|
|
@ -42,7 +42,7 @@ pub use char::Char;
|
|||
pub use clone::Clone;
|
||||
pub use cmp::{PartialEq, PartialOrd, Eq, Ord};
|
||||
pub use iter::{Extend, IteratorExt};
|
||||
pub use iter::{Iterator, DoubleEndedIterator, DoubleEndedIteratorExt};
|
||||
pub use iter::{Iterator, DoubleEndedIterator};
|
||||
pub use iter::{IteratorCloneExt, CloneIteratorExt};
|
||||
pub use iter::{IteratorOrdExt, ExactSizeIterator, IteratorPairExt};
|
||||
pub use option::Option::{mod, Some, None};
|
||||
|
|
|
@ -21,7 +21,7 @@ use self::Searcher::{Naive, TwoWay, TwoWayLong};
|
|||
use cmp::{mod, Eq};
|
||||
use default::Default;
|
||||
use iter::range;
|
||||
use iter::{DoubleEndedIteratorExt, ExactSizeIterator};
|
||||
use iter::ExactSizeIterator;
|
||||
use iter::{Map, Iterator, IteratorExt, DoubleEndedIterator};
|
||||
use kinds::Sized;
|
||||
use mem;
|
||||
|
|
|
@ -15,7 +15,7 @@ use clone::Clone;
|
|||
use cmp::{PartialEq, Eq, PartialOrd, Ord, Ordering};
|
||||
use hash;
|
||||
use io::Writer;
|
||||
use iter::{DoubleEndedIteratorExt, AdditiveIterator, Extend};
|
||||
use iter::{AdditiveIterator, Extend};
|
||||
use iter::{Iterator, IteratorExt, Map};
|
||||
use option::Option;
|
||||
use option::Option::{None, Some};
|
||||
|
@ -449,7 +449,7 @@ mod tests {
|
|||
use super::*;
|
||||
|
||||
use clone::Clone;
|
||||
use iter::{IteratorExt, DoubleEndedIteratorExt};
|
||||
use iter::IteratorExt;
|
||||
use option::Option::{mod, Some, None};
|
||||
use path::GenericPath;
|
||||
use slice::{AsSlice, SliceExt};
|
||||
|
|
|
@ -20,7 +20,7 @@ use clone::Clone;
|
|||
use cmp::{PartialEq, Eq, PartialOrd, Ord, Ordering};
|
||||
use hash;
|
||||
use io::Writer;
|
||||
use iter::{AdditiveIterator, DoubleEndedIteratorExt, Extend};
|
||||
use iter::{AdditiveIterator, Extend};
|
||||
use iter::{Iterator, IteratorExt, Map, repeat};
|
||||
use mem;
|
||||
use option::Option;
|
||||
|
@ -1124,7 +1124,7 @@ mod tests {
|
|||
use super::*;
|
||||
|
||||
use clone::Clone;
|
||||
use iter::{IteratorExt, DoubleEndedIteratorExt};
|
||||
use iter::IteratorExt;
|
||||
use option::Option::{mod, Some, None};
|
||||
use path::GenericPath;
|
||||
use slice::{AsSlice, SliceExt};
|
||||
|
|
|
@ -27,7 +27,6 @@
|
|||
#[stable] #[doc(no_inline)] pub use cmp::{PartialEq, PartialOrd, Eq, Ord};
|
||||
#[stable] #[doc(no_inline)] pub use iter::CloneIteratorExt;
|
||||
#[stable] #[doc(no_inline)] pub use iter::DoubleEndedIterator;
|
||||
#[stable] #[doc(no_inline)] pub use iter::DoubleEndedIteratorExt;
|
||||
#[stable] #[doc(no_inline)] pub use iter::ExactSizeIterator;
|
||||
#[stable] #[doc(no_inline)] pub use iter::{Iterator, IteratorExt, Extend};
|
||||
#[stable] #[doc(no_inline)] pub use iter::{IteratorCloneExt, IteratorOrdExt};
|
||||
|
|
Loading…
Reference in New Issue