This crate aims to provide various tools for slices.

This crate use its own streaming iterator due to the lack of generic associated type in the language: you therefore cannot use those iterators with the for control flow. Use the while let control flow, or the macro helper, as you can see below.

Example

Cargo.toml:

[dependencies] slicetools = "0.2.*"

main.rs:

```rust extern crate slicetools;

use slicetools::*;

let mut v = vec![1, 2, 3, 4]; { let mut it = v.pairs_mut();

while let Some((a, b)) = it.next() {
    if *b > *a {
        *a += 1;
    }
}

} assert_eq!(v, &[4, 4, 4, 4]); ```

Or, with the helper macro:

```rust

[macro_use] extern crate slicetools;

use slicetools::*;

let mut v = vec![1, 2, 3, 4];

stream!( v.pairsmut() => (a, b) in { if *b > *a { *a += 1; } }); asserteq!(v, &[4, 4, 4, 4]); ```

Changelog

0.3.*

0.2.*