[][src]Enum rlifesrc_lib::Symmetry

pub enum Symmetry {
    C1,
    C2,
    C4,
    D2Row,
    D2Col,
    D2Diag,
    D2Antidiag,
    D4Ortho,
    D4Diag,
    D8,
}

Symmetries of the pattern.

10 different values corresponds to 10 subgroups of the dihedral group D8.

The notation is stolen from Oscar Cunningham's Logic Life Search.

Some of the symmetries are only valid when the world is square.

Variants

C1

C1.

No symmetry at all.

C2

C2.

Symmetry under 180° rotation.

C4

C4.

Symmetry under 90° rotation.

D2Row

D2-.

Symmetry under reflection across the middle row.

D2Col

D2|.

Symmetry under reflection across the middle column.

D2Diag

D2\.

Symmetry under reflection across the diagonal.

D2Antidiag

D2/.

Symmetry under reflection across the antidiagonal.

D4Ortho

D4+.

Symmetry under reflections across the middle row and the middle column.

D4Diag

D4X.

Symmetry under reflections across the diagonal and the antidiagonal.

D8

D8.

Symmetry under all 8 transformations.

Methods

impl Symmetry[src]

pub fn square_world(self) -> bool[src]

Whether the transformation requires the world to be square.

Returns true for C4, D2\, D2/, D4X and D8.

Trait Implementations

impl Clone for Symmetry[src]

impl Copy for Symmetry[src]

impl Default for Symmetry[src]

The default symmetry is the C1.

impl PartialEq<Symmetry> for Symmetry[src]

impl Debug for Symmetry[src]

impl FromStr for Symmetry[src]

type Err = String

The associated error which can be returned from parsing.

impl StructuralPartialEq for Symmetry[src]

Auto Trait Implementations

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,