Crate ca_formats[−][src]
Parsing pattern files for Conway's Game of Life.
The parsers read a string and return an iterator of coordinates of living cells.
Supported formats
Examples
Reading from a string:
use ca_formats::rle::Rle; const GLIDER: &str = r"#N Glider #O Richard K. Guy #C The smallest, most common, and first discovered spaceship. Diagonal, has period 4 and speed c/4. #C www.conwaylife.com/wiki/index.php?title=Glider x = 3, y = 3, rule = B3/S23 bob$2bo$3o!"; let glider = Rle::new(GLIDER).unwrap(); assert_eq!(glider.header_data().unwrap().x, 3); assert_eq!(glider.header_data().unwrap().y, 3); assert_eq!(glider.header_data().unwrap().rule, Some(String::from("B3/S23"))); let cells = glider.map(|cell| cell.unwrap().position).collect::<Vec<_>>(); assert_eq!(cells, vec![(1, 0), (2, 1), (0, 2), (1, 2), (2, 2)]);
Reading from a file:
use std::fs::File; use ca_formats::rle::Rle; let file = File::open("tests/sirrobin.rle").unwrap(); let sirrobin = Rle::new_from_file(file).unwrap(); assert_eq!(sirrobin.count(), 282);
See also
- ca-rules - A parser for rule strings.
- game-of-life-parsers by René Perschon - Parsers for Life 1.05 and Life 1.06 formats.
Modules
apgcode | Parsers for apgcode format and Extended Wechsler format. |
macrocell | A parser for Macrocell format. |
plaintext | A parser for Plaintext format. |
rle | A parser for Golly's Extended RLE format. |
Structs
CellData | Position and state of a cell. |
Traits
Input | Types that can be passed to parsers as input. |
Type Definitions
Coordinates |