fn main() { struct ElementaryCA { rule: u8, state: u64, } impl ElementaryCA { fn new(rule: u8) -> (u64, ElementaryCA) { let out = ElementaryCA { rule, state: 1, }; (out.state, out) } fn next(&mut self) -> u64 { let mut next_state = 0u64; let state = self.state; for i in 0..64 { next_state |= (((self.rule as u64)>>(7 & (state.rotate_left(1).rotate_right(i as u32)))) & 1)< String { let mut out = String::new(); for i in (0..64).rev() { if 1<