gradient-slice

Crates.iogradient-slice
lib.rsgradient-slice
version0.4.0
created_at2025-06-22 04:19:30.07782+00
updated_at2025-06-24 00:17:46.091291+00
descriptiongradient-slice is a safe crate to iterate over a gradient of permutations of slices of a Vec
homepagehttps://docs.rs/gradient-slice
repositoryhttps://github.com/gabrielfalcao/gradient-slice
max_upload_size
id1721275
size8,267
Gabriel Falcão (gabrielfalcao)

documentation

https://docs.rs/gradient-slice

README

Gradient Slice

gradient slice is a safe crate to iterate over a gradient of permutations of slices of a Vec.

Examples

use gradient_slice::Gradient;

let boot = Gradient::new(0x1BADB002u32.to_be_bytes().to_vec())
    .map(Vec::from)
    .collect::<Vec<Vec<u8>>>();
assert_eq!(
    boot,
    vec![
        vec![27], vec![173], vec![176], vec![2],
        vec![27, 173], vec![173, 176], vec![176, 2],
        vec![27, 173, 176], vec![173, 176, 2],
        vec![27, 173, 176, 2]
    ]
);
use gradient_slice::Gradient;

let alphabet = Gradient::new(" abc ".chars().collect::<Vec<char>>())
    .map(Vec::from)
    .map(|vec| {
        vec.iter()
            .map(Clone::clone)
            .map(String::from)
            .collect::<String>()
    })
    .collect::<Vec<String>>();
assert_eq!(
    alphabet,
    vec![
        " ", "a", "b", "c", " ", " a", "ab", "bc", "c ", " ab", "abc", "bc ", " abc",
        "abc ", " abc "
    ]
);
Commit count: 0

cargo fmt