This project aims to provide a simple interface for working with L-systems in the Rust programming language.
```rust let mut system = LSystem::withaxiom("b"); system.addrule('a', "ab"); system.add_rule('b', "a");
for step in 0..10 { println!("Step #{}: {}", step, system.next().unwrap()); } ```
```rust let mut system = LSystem::withaxiom("baaaaaaa"); system.addrule('b', "a"); system.addcontextrule((Some("b"), 'a', None), "b");
asserteq!(system.next().unwrap(), "baaaaaaa"); asserteq!(system.next().unwrap(), "abaaaaaa"); asserteq!(system.next().unwrap(), "aabaaaaa"); asserteq!(system.next().unwrap(), "aaabaaaa"); asserteq!(system.next().unwrap(), "aaaabaaa"); asserteq!(system.next().unwrap(), "aaaaabaa"); asserteq!(system.next().unwrap(), "aaaaaaba"); asserteq!(system.next().unwrap(), "aaaaaaab"); assert_eq!(system.next().unwrap(), "aaaaaaaa"); ```