1 unstable release

0.1.0 Feb 23, 2021

#6 in #separation

Download history 458/week @ 2024-11-16 48/week @ 2024-11-23 30/week @ 2024-11-30 55/week @ 2024-12-07 39/week @ 2024-12-14 152/week @ 2024-12-21 60/week @ 2024-12-28 101/week @ 2025-01-04 87/week @ 2025-01-11 71/week @ 2025-01-18 53/week @ 2025-01-25 295/week @ 2025-02-01 150/week @ 2025-02-08 153/week @ 2025-02-15 93/week @ 2025-02-22 55/week @ 2025-03-01

460 downloads per month
Used in 4 crates (via num-runtime-fmt)

MIT license

8KB
151 lines

iterext: A few more extension methods on iterators.

This crate is not likely to ever be published on https://crates.io because it's far more appropriate to attepmt to get these extensions added to itertools. However, I haven't yet made the time to attempt to contribute them there.

A few quick examples from the tests should show what it's about:

use iterext::prelude::*;

#[test]
fn test_separate() {
    for (msg, expect) in &[
        ("abc", "abc"),
        ("zyx", "zyx"),
        (
            "abcdefghijklmnopqrstuvwxyz",
            "abcde fghij klmno pqrst uvwxy z",
        ),
        (
            "thequickbrownfoxjumpedoverthelazydog",
            "thequ ickbr ownfo xjump edove rthel azydo g",
        ),
        (
            "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz",
            "abcde fghij klmno pqrst uvwxy zabcd efghi jklmn opqrs tuvwx yz",
        ),
    ] {
        let got: String = msg.chars().separate(' ', 5);
        assert_eq!(&got, expect,);
    }
}

#[test]
fn test_padding_chars() {
    let have = "foo".chars().pad('X', 5).collect::<String>();
    assert_eq!(have, "fooXX");
}

Provenance

Originally wrote these extensions as part of the textbyte module for my solitaire implementation.

Dependencies

~455KB