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"
```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}"));
} ```
```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}"));
} ```
```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.