[−][src]Trait ca_rules::ParseNtLifeGen
A trait for parsing non-totalistic life-like Generations rules. Both isotropic and non-isotropic rules are supported.
The b
/ s
data of this type of rules consists of possible combinations of
states of the 8 neighbors, represented by an 8-bit binary number,
that cause a cell to be born / survive.
For example, the following neighborhood is represented by the number 42 = 0b00101010
:
0 0 1
0 _ 1
0 1 0
Examples
use ca_rules::ParseNtLifeGen; #[derive(Debug, Eq, PartialEq)] struct Rule { b: Vec<u8>, s: Vec<u8>, gen: usize, } impl ParseNtLifeGen for Rule { fn from_bsg(b: Vec<u8>, s: Vec<u8>, gen: usize) -> Self { Rule { b, s, gen } } } let life = Rule::parse_rule("g4b2c36k7s2ak34-a5-i").unwrap(); assert_eq!(life.gen, 4);
Required methods
fn from_bsg(b: Vec<u8>, s: Vec<u8>, gen: usize) -> Self
Construct the rule from b
/ s
data and the number of states.
Provided methods
fn parse_rule(input: &str) -> Result<Self, ParseRuleError> where
Self: Sized,
Self: Sized,
The parser.