Cell

Struct Cell 

Source
pub struct Cell(/* private fields */);
Expand description

Contents of square on a chess board

A square can be either empty or contain a piece of some given color.

This type is one compact and is only one byte long to facilitate compact chess board representation.

Implementations§

Source§

impl Cell

Source

pub const EMPTY: Cell

Cell without any pieces

Source

pub const COUNT: usize = 13usize

Number of different possible indices of Cell

It exceeds maximum possible index by one.

Source

pub const fn is_free(&self) -> bool

Returns true if the cell doesn’t contain any pieces

Source

pub const fn is_occupied(&self) -> bool

Returns true if the cell contains a piece

Source

pub const unsafe fn from_index_unchecked(val: usize) -> Cell

Creates a cell from its index

§Safety

The behavior is undefined if the index is invalid (i.e. it is greater or equal than Cell::COUNT)

Source

pub const fn from_index(val: usize) -> Cell

Creates a cell from its index

§Panics

The function panics if the index is invalid (i.e. it is greater or equal than Cell::COUNT)

Source

pub const fn index(&self) -> usize

Returns the index of the cell

Cell indices are stable between updates, and changing the index of some given cell is considered API breakage.

Source

pub const fn from_parts(c: Color, p: Piece) -> Cell

Creates a cell with a piece p of color c

Source

pub const fn color(&self) -> Option<Color>

Returns the color of the piece on the cell

If the cell is empty, returns None.

Source

pub const fn piece(&self) -> Option<Piece>

Returns the kind of the piece on the cell

If the cell is empty, returns None.

Source

pub fn iter() -> impl Iterator<Item = Cell>

Iterates over all possible cells in ascending order of their indices

Source

pub fn as_char(&self) -> char

Returns a character representation of the cell

Unlike Cell::as_utf8_char, the representation is an ASCII character.

Source

pub fn as_utf8_char(&self) -> char

Converts a cell to a corresponding Unicode character

Source

pub fn from_char(c: char) -> Option<Cell>

Creates a cell from its character representation

If c is not a valid character representation of a cell, returns None. Note that only ASCII character repesentations as returned by Cell::as_char are accepted.

Trait Implementations§

Source§

impl Clone for Cell

Source§

fn clone(&self) -> Cell

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Cell

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for Cell

Source§

fn default() -> Cell

Returns the “default value” for a type. Read more
Source§

impl Display for Cell

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl FromStr for Cell

Source§

type Err = CellParseError

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Cell, <Cell as FromStr>::Err>

Parses a string s to return a value of this type. Read more
Source§

impl Hash for Cell

Source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Cell

Source§

fn eq(&self, other: &Cell) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Cell

Source§

impl Eq for Cell

Source§

impl StructuralPartialEq for Cell

Auto Trait Implementations§

§

impl Freeze for Cell

§

impl RefUnwindSafe for Cell

§

impl Send for Cell

§

impl Sync for Cell

§

impl Unpin for Cell

§

impl UnwindSafe for Cell

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.