Crates.io | iterext |
lib.rs | iterext |
version | 0.1.0 |
source | src |
created_at | 2021-02-23 21:03:05.330712 |
updated_at | 2021-02-23 21:03:05.330712 |
description | Padding and separation extensions to iterators |
homepage | |
repository | https://github.com/coriolinus/iterext |
max_upload_size | |
id | 359637 |
size | 9,784 |
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");
}
Originally wrote these extensions as part of the textbyte
module for my solitaire
implementation.