orx-iterable 1.3.0

Defines and implements Iterable, Collection and CollectionMut traits to represent types that can be iterated over multiple times.
Documentation
use orx_iterable::*;

#[test]
fn repeat_n() {
    let it = orx_iterable::repeat_n(42, 3);

    assert_eq!(it.iter().count(), 3);
    assert_eq!(it.iter().sum::<usize>(), 3 * 42);

    let it = core::iter::repeat_n(42, 3);

    assert_eq!(it.iter().count(), 3);
    assert_eq!(it.iter().sum::<usize>(), 3 * 42);
}

#[cfg(feature = "std")]
mod object_safe {
    use orx_iterable::obj_safe::*;

    #[test]
    fn obj_repeat_n() {
        let it = orx_iterable::repeat_n(42, 3);

        assert_eq!(it.boxed_iter().count(), 3);
        assert_eq!(it.boxed_iter().sum::<usize>(), 3 * 42);

        let it = core::iter::repeat_n(42, 3);

        assert_eq!(it.boxed_iter().count(), 3);
        assert_eq!(it.boxed_iter().sum::<usize>(), 3 * 42);
    }
}