seqgen 0.3.3

Sequence generation library
Documentation
//! x-y sequence example.

use seqgen::prelude::*;

fn main() {
    let initial_elements = vec![String::from("x"), String::from("y")];
    let mut seq = Sequence::new()
        .initial_elements(initial_elements)
        .transition_function(|alive_elements, current_element_index| {
            let mut next = String::from(
                alive_elements
                    .nth_element(current_element_index - 2)
                    .unwrap(),
            );

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

            next
        });

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