grid-sim 0.3.0

grid-based simulation in rust
Documentation
#[derive(Clone)]
pub enum Design {
    //Still lifes
    Block,
    Beehive,
    Loaf,
    Boat,
    Tub,
    //Oscillators
    Blinker,
    Toad,
    Beacon,
    Pulsar,
    Eureka,
    //Spaceships
    Glider,
    LWSS,
}
impl Design {
    pub fn get_data(&self) -> Vec<(u64, u64)> {
        match *self {
            Design::Block => {
                vec![
                ( 1, 1), ( 2, 1),
                ( 1, 2), ( 2, 2)
                ]
            },
            Design::Beehive => {
                vec![
                         ( 2, 1), (3, 1),        
                ( 1, 2),                  (4, 2),
                         ( 2, 3), (3, 3)
                ]
            },
            Design::Loaf => {
                vec![
                         ( 2, 1), (3, 1),         
                ( 1, 2),                  (4, 2), 
                         ( 2, 3),         (4, 3), 
                                  (3, 4)
                ]
            },
            Design::Boat => {
                vec![
                ( 1, 1), ( 2, 1),        
                ( 1, 2),          (3, 2),
                         ( 2, 3) 
                ]
            },
            Design::Tub => {
                vec![
                         ( 2, 1),
                ( 1, 2),          (3, 2),
                ( 1, 3), ( 2, 3)
                ]
            },
            Design::Blinker => {
                vec![
                ( 1, 1), ( 2, 1), (3, 1)
                ]
            },
            Design::Toad => {
                vec![
                         ( 2, 1), (3, 1), (4, 1),
                ( 1, 2), ( 2, 2), (3, 2),
                ]
            },
            Design::Beacon => {
                vec![
                ( 1, 1), ( 2, 1),
                ( 1, 2),          
                                          (4, 3),
                                  (3, 4), (4, 4),
                ]
            },
            Design::LWSS => {
                vec![
                ( 1, 1),                  (4, 1),
                                                  (5, 2),
                ( 1, 3),                          (5, 3),
                         ( 2, 4), (3, 4), (4, 4), (5, 4),
                ]
            },
            Design::Glider => vec![(2, 1), (1, 3), (2, 3), (3, 3), (3, 2)],
            Design::Pulsar => {
                vec![
        (4, 2), (5, 2), ( 6, 2),                 (10, 2), (11, 2), (12, 2),                         
                                                                           
( 2, 4),                         ( 7, 4),(9, 4),                           (14, 4), 
( 2, 5),                         ( 7, 5),(9, 5),                           (14, 5), 
( 2, 6),                         ( 7, 6),(9, 6),                           (14, 6), 
        (4, 7), (5, 7), ( 6, 7),                 (10, 7), (11, 7), (12, 7),
                                                                                    
        (4, 9), (5, 9), ( 6, 9),                 (10, 9), (11, 9), (12, 9),
( 2,10),                         ( 7,10),(9,10),                           (14,10), 
( 2,11),                         ( 7,11),(9,11),                           (14,11), 
( 2,12),                         ( 7,12),(9,12),                           (14,12), 
                                                                                    
        (4,14), (5,14), ( 6,14),                 (10,14), (11,14), (12,14),
                ]
            },
            Design::Eureka => {
                vec![
         ( 2, 3),                                         (17, 3),         
( 1, 4),          (3, 4),( 7, 4), (8, 4), (9, 4),(16, 4),          (18, 4),
         ( 2, 5),        ( 7, 5),         (9, 5),         (17, 5),         
                         ( 7, 6), (8, 6), (9, 6),                          
                         ( 7,10), (8,10), (9,10),                          
         ( 2,11),        ( 7,11),         (9,11),         (17,11),         
( 1,12),          (3,12),( 7,12), (8,12), (9,12),(16,12),          (18,12),
         ( 2,13),                                         (17,13),         
                ]
            },
        }
    }
}