seqgen

Sequence generation library

New is this release:

Install:

From the commend line in your project directory run the following

console $ cargo add seqgen

Or add this under [[dependencies]] in Cargo.toml

toml seqgen = "0.2.2"

Examples:

Fibonacci sequence

```rust use seqgen::prelude::*;

fn main() { let seq = Sequence::new() .initialelements(vec![0, 1u128]) .transitionfunction(|aliveelements, currentelementindex| { aliveelements .nthelement(currentelementindex - 1) .unwrap() + aliveelements .nthelement(currentelementindex - 2) .unwrap() }) .pre_generated(188);

seq.alive_elements()
    .for_each(|element| println!("{element}"));

} ```

An x-y sequence

```rust use seqgen::prelude::*;

fn main() { let mut seq = Sequence::new() .initialelements(vec!["x".tostring(), "y".tostring()]) .transitionfunction(|aliveelements, currentelementindex| { let mut string = String::from( aliveelements .nthelement(currentelement_index - 2) .unwrap(), );

        string.push_str(
            alive_elements
                .nth_element(current_element_index - 1)
                .unwrap(),
        );

        string
    });

seq.range(0, 10)
    .unwrap()
    .for_each(|element| println!("{element}"));

} ```

Range of sequence

```rust use seqgen::prelude::*;

fn main() { let mut seq = Sequence::new() .initialelements(vec![]) .transitionfunction(|aliveelements, currentelementindex| { aliveelements .lastelement() .mapor(currentelementindex, |element| element + 1) });

let range_res: Result<SequencePart<'_, usize, Range>, RangeError> = seq.range(0, 10);

if let Ok(range) = range_res {
    range.for_each(|element| println!("{element}"));
}

} ```

If you find this project useful give it a star on GitHub.