Expand description
The crate is basically just a permutation utility. With the goal of speed and the smallest possible runtime memory impact possible. And so, the goal of this crate is to be able to calculate and obtain a permutation of a value as soon as possible.
§Examples
Get all the permutations of a string of three characters:
use heap_permute::PermuteIter;
// Print all of the permutations of a string of three characters
fn main() {
const STRING: &'static str = "ABC";
for p in PermuteIter::from(STRING) {
println!("{}", p);
}
}
// Prints:
// ABC
// BAC
// CAB
// ACB
// BCA
// CBANow time for something more interesting, let’s permute the bits in a u8:
use heap_permute::PermuteIter;
fn main() {
for p in PermuteIter::from(0b1010_1001 as u8) {
println!("0b{:08b} ({})", p, p);
}
}
// Prints:
// 0b10101001 (169)
// 0b10101010 (170)
// 0b10101010 (170)
// 0b10101001 (169)
// 0b10101100 (172)
// 0b10101100 (172)
// 0b10100101 (165)
// 0b10100110 (166)
// 0b10100011 (163)
// 0b10100011 (163)
// ...As it happens, the crate supports permutation for all of the primitive numeric rust types.
Structs§
- Permute
Iter - Iterator over the permutations of a permutable type
Traits§
- Permutable
- Represents any type that the heap algorithm can generate permutations for