Remove unused Pair iterator and util::iter module
This commit is contained in:
parent
c6a41651ab
commit
7c7ec02ed2
|
@ -1,80 +0,0 @@
|
|||
// Rust Bitcoin Library
|
||||
// Written in 2014 by
|
||||
// Andrew Poelstra <apoelstra@wpsoftware.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to
|
||||
// the public domain worldwide. This software is distributed without
|
||||
// any warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain Dedication
|
||||
// along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
//
|
||||
|
||||
//! Iterator adaptors
|
||||
//!
|
||||
//! Iterator adaptors needed by Bitcoin but not provided by the Rust
|
||||
//! standard library.
|
||||
|
||||
/// An iterator that returns pairs of elements
|
||||
pub struct Pair<I>
|
||||
where I: Iterator
|
||||
{
|
||||
iter: I,
|
||||
last_elem: Option<I::Item>
|
||||
}
|
||||
|
||||
impl<I: Iterator> Iterator for Pair<I> {
|
||||
type Item = (I::Item, I::Item);
|
||||
|
||||
#[inline]
|
||||
fn next(&mut self) -> Option<(I::Item, I::Item)> {
|
||||
let elem1 = self.iter.next();
|
||||
if elem1.is_none() {
|
||||
None
|
||||
} else {
|
||||
let elem2 = self.iter.next();
|
||||
if elem2.is_none() {
|
||||
self.last_elem = elem1;
|
||||
None
|
||||
} else {
|
||||
Some((elem1.unwrap(), elem2.unwrap()))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn size_hint(&self) -> (usize, Option<usize>) {
|
||||
match self.iter.size_hint() {
|
||||
(n, None) => (n/2, None),
|
||||
(n, Some(m)) => (n/2, Some(m/2))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<I: Iterator> Pair<I> {
|
||||
/// Returns the last element of the iterator if there were an odd
|
||||
/// number of elements remaining before it was Pair-ified.
|
||||
#[inline]
|
||||
pub fn remainder(self) -> Option<I::Item> {
|
||||
self.last_elem
|
||||
}
|
||||
}
|
||||
|
||||
/// Returns an iterator that returns elements of the original iterator 2 at a time
|
||||
pub trait Pairable : Sized + Iterator {
|
||||
/// Returns an iterator that returns elements of the original iterator 2 at a time
|
||||
fn pair(self) -> Pair<Self>;
|
||||
}
|
||||
|
||||
impl<I: Iterator> Pairable for I {
|
||||
/// Creates an iterator that yields pairs of elements from the underlying
|
||||
/// iterator, yielding `None` when there are fewer than two elements to
|
||||
/// return.
|
||||
#[inline]
|
||||
fn pair(self) -> Pair<I> {
|
||||
Pair {iter: self, last_elem: None }
|
||||
}
|
||||
}
|
||||
|
|
@ -24,7 +24,6 @@ pub mod bip143;
|
|||
pub mod contracthash;
|
||||
pub mod decimal;
|
||||
pub mod hash;
|
||||
pub mod iter;
|
||||
pub mod misc;
|
||||
pub mod uint;
|
||||
|
||||
|
|
Loading…
Reference in New Issue