for-loop-iterator 0.2.2

Iterators like traditional for loops
Documentation
use std::{ops::Add, process::Output};

use crate::*;
#[test]
fn for_iter() {
	let mut it = ForLoopIterator::new(
		30,
		|i| i < &40,
		|i| i+1

	);
	assert_eq!(it.next(), Some(30));
	assert_eq!(it.next(), Some(31));
	assert_eq!(it.next(), Some(32));
	assert_eq!(it.next(), Some(33));
	assert_eq!(it.next(), Some(34));
	let mut it=it.skip(5);
	assert_eq!(it.next(), None);
	let mut it = ForLoopIterator::new(
		100,
		|i| i > &0,
		|i| i-2

	);
	assert_eq!(it.next(), Some(100));
	assert_eq!(it.next(), Some(98));
	assert_eq!(it.next(), Some(96));
	assert_eq!(it.next(), Some(94));
	let mut it=it.skip(45);
	assert_eq!(it.next(), Some(2));
	assert_eq!(it.next(), None);
}
#[test]
fn for_f32() {
	let mut it = ForLoopIterator::new(
		10f32,
		|i| i > &0f32,
		|i| i-0.25

	);
	assert_eq!(it.next(), Some(10.0));
	assert_eq!(it.next(), Some(9.75));
	assert_eq!(it.next(), Some(9.50));
	let mut it = it.skip(36);
	assert_eq!(it.next(), Some(0.25));
	assert_eq!(it.next(), None);
}
#[derive(Clone, Copy, PartialEq, Debug)]
struct MyStruct(i32);
#[test]
fn for_whatever() {
	let mut it = ForLoopIterator::new(
		MyStruct(0),
		|i| i.0 < 10i32,
		|i| MyStruct(i.0+1)

	);
	assert_eq!(it.next(), Some(MyStruct(0)));
	assert_eq!(it.next(), Some(MyStruct(1)));
	assert_eq!(it.next(), Some(MyStruct(2)));
	
}
#[test]
fn from_docs() {
	let mut iter = ForLoopIterator::new(
        10,
        |i| i > &0,
        |i| i - &2

    );
    assert_eq!(iter.next(), Some(10));
    assert_eq!(iter.next(), Some(8));
    let mut iter = iter.skip(2);
    assert_eq!(iter.next(), Some(2));
    assert_eq!(iter.next(), None);
}
#[test]
// 0.2.0 adds ability for closures to capture environment
fn close_capture() {
	let step = 3i32;
	let mut iter = ForLoopIterator::new(
        0,
        |i| i <= &30,
        move |i| i + step

    );
    assert_eq!(iter.next(), Some(0));
    assert_eq!(iter.next(), Some(3));
    assert_eq!(iter.next(), Some(6));
    let mut iter = iter.skip(7);
    assert_eq!(iter.next(), Some(30));
    assert_eq!(iter.next(), None);



}