#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
pub enum DominoTiles {
DominoTileHorizontalBack,
DominoTileHorizontalDash00Dash00,
DominoTileHorizontalDash00Dash01,
DominoTileHorizontalDash00Dash02,
DominoTileHorizontalDash00Dash03,
DominoTileHorizontalDash00Dash04,
DominoTileHorizontalDash00Dash05,
DominoTileHorizontalDash00Dash06,
DominoTileHorizontalDash01Dash00,
DominoTileHorizontalDash01Dash01,
DominoTileHorizontalDash01Dash02,
DominoTileHorizontalDash01Dash03,
DominoTileHorizontalDash01Dash04,
DominoTileHorizontalDash01Dash05,
DominoTileHorizontalDash01Dash06,
DominoTileHorizontalDash02Dash00,
DominoTileHorizontalDash02Dash01,
DominoTileHorizontalDash02Dash02,
DominoTileHorizontalDash02Dash03,
DominoTileHorizontalDash02Dash04,
DominoTileHorizontalDash02Dash05,
DominoTileHorizontalDash02Dash06,
DominoTileHorizontalDash03Dash00,
DominoTileHorizontalDash03Dash01,
DominoTileHorizontalDash03Dash02,
DominoTileHorizontalDash03Dash03,
DominoTileHorizontalDash03Dash04,
DominoTileHorizontalDash03Dash05,
DominoTileHorizontalDash03Dash06,
DominoTileHorizontalDash04Dash00,
DominoTileHorizontalDash04Dash01,
DominoTileHorizontalDash04Dash02,
DominoTileHorizontalDash04Dash03,
DominoTileHorizontalDash04Dash04,
DominoTileHorizontalDash04Dash05,
DominoTileHorizontalDash04Dash06,
DominoTileHorizontalDash05Dash00,
DominoTileHorizontalDash05Dash01,
DominoTileHorizontalDash05Dash02,
DominoTileHorizontalDash05Dash03,
DominoTileHorizontalDash05Dash04,
DominoTileHorizontalDash05Dash05,
DominoTileHorizontalDash05Dash06,
DominoTileHorizontalDash06Dash00,
DominoTileHorizontalDash06Dash01,
DominoTileHorizontalDash06Dash02,
DominoTileHorizontalDash06Dash03,
DominoTileHorizontalDash06Dash04,
DominoTileHorizontalDash06Dash05,
DominoTileHorizontalDash06Dash06,
DominoTileVerticalBack,
DominoTileVerticalDash00Dash00,
DominoTileVerticalDash00Dash01,
DominoTileVerticalDash00Dash02,
DominoTileVerticalDash00Dash03,
DominoTileVerticalDash00Dash04,
DominoTileVerticalDash00Dash05,
DominoTileVerticalDash00Dash06,
DominoTileVerticalDash01Dash00,
DominoTileVerticalDash01Dash01,
DominoTileVerticalDash01Dash02,
DominoTileVerticalDash01Dash03,
DominoTileVerticalDash01Dash04,
DominoTileVerticalDash01Dash05,
DominoTileVerticalDash01Dash06,
DominoTileVerticalDash02Dash00,
DominoTileVerticalDash02Dash01,
DominoTileVerticalDash02Dash02,
DominoTileVerticalDash02Dash03,
DominoTileVerticalDash02Dash04,
DominoTileVerticalDash02Dash05,
DominoTileVerticalDash02Dash06,
DominoTileVerticalDash03Dash00,
DominoTileVerticalDash03Dash01,
DominoTileVerticalDash03Dash02,
DominoTileVerticalDash03Dash03,
DominoTileVerticalDash03Dash04,
DominoTileVerticalDash03Dash05,
DominoTileVerticalDash03Dash06,
DominoTileVerticalDash04Dash00,
DominoTileVerticalDash04Dash01,
DominoTileVerticalDash04Dash02,
DominoTileVerticalDash04Dash03,
DominoTileVerticalDash04Dash04,
DominoTileVerticalDash04Dash05,
DominoTileVerticalDash04Dash06,
DominoTileVerticalDash05Dash00,
DominoTileVerticalDash05Dash01,
DominoTileVerticalDash05Dash02,
DominoTileVerticalDash05Dash03,
DominoTileVerticalDash05Dash04,
DominoTileVerticalDash05Dash05,
DominoTileVerticalDash05Dash06,
DominoTileVerticalDash06Dash00,
DominoTileVerticalDash06Dash01,
DominoTileVerticalDash06Dash02,
DominoTileVerticalDash06Dash03,
DominoTileVerticalDash06Dash04,
DominoTileVerticalDash06Dash05,
DominoTileVerticalDash06Dash06,
}
impl Into<char> for DominoTiles {
fn into(self) -> char {
match self {
DominoTiles::DominoTileHorizontalBack => '🀰',
DominoTiles::DominoTileHorizontalDash00Dash00 => '🀱',
DominoTiles::DominoTileHorizontalDash00Dash01 => '🀲',
DominoTiles::DominoTileHorizontalDash00Dash02 => '🀳',
DominoTiles::DominoTileHorizontalDash00Dash03 => '🀴',
DominoTiles::DominoTileHorizontalDash00Dash04 => '🀵',
DominoTiles::DominoTileHorizontalDash00Dash05 => '🀶',
DominoTiles::DominoTileHorizontalDash00Dash06 => '🀷',
DominoTiles::DominoTileHorizontalDash01Dash00 => '🀸',
DominoTiles::DominoTileHorizontalDash01Dash01 => '🀹',
DominoTiles::DominoTileHorizontalDash01Dash02 => '🀺',
DominoTiles::DominoTileHorizontalDash01Dash03 => '🀻',
DominoTiles::DominoTileHorizontalDash01Dash04 => '🀼',
DominoTiles::DominoTileHorizontalDash01Dash05 => '🀽',
DominoTiles::DominoTileHorizontalDash01Dash06 => '🀾',
DominoTiles::DominoTileHorizontalDash02Dash00 => '🀿',
DominoTiles::DominoTileHorizontalDash02Dash01 => '🁀',
DominoTiles::DominoTileHorizontalDash02Dash02 => '🁁',
DominoTiles::DominoTileHorizontalDash02Dash03 => '🁂',
DominoTiles::DominoTileHorizontalDash02Dash04 => '🁃',
DominoTiles::DominoTileHorizontalDash02Dash05 => '🁄',
DominoTiles::DominoTileHorizontalDash02Dash06 => '🁅',
DominoTiles::DominoTileHorizontalDash03Dash00 => '🁆',
DominoTiles::DominoTileHorizontalDash03Dash01 => '🁇',
DominoTiles::DominoTileHorizontalDash03Dash02 => '🁈',
DominoTiles::DominoTileHorizontalDash03Dash03 => '🁉',
DominoTiles::DominoTileHorizontalDash03Dash04 => '🁊',
DominoTiles::DominoTileHorizontalDash03Dash05 => '🁋',
DominoTiles::DominoTileHorizontalDash03Dash06 => '🁌',
DominoTiles::DominoTileHorizontalDash04Dash00 => '🁍',
DominoTiles::DominoTileHorizontalDash04Dash01 => '🁎',
DominoTiles::DominoTileHorizontalDash04Dash02 => '🁏',
DominoTiles::DominoTileHorizontalDash04Dash03 => '🁐',
DominoTiles::DominoTileHorizontalDash04Dash04 => '🁑',
DominoTiles::DominoTileHorizontalDash04Dash05 => '🁒',
DominoTiles::DominoTileHorizontalDash04Dash06 => '🁓',
DominoTiles::DominoTileHorizontalDash05Dash00 => '🁔',
DominoTiles::DominoTileHorizontalDash05Dash01 => '🁕',
DominoTiles::DominoTileHorizontalDash05Dash02 => '🁖',
DominoTiles::DominoTileHorizontalDash05Dash03 => '🁗',
DominoTiles::DominoTileHorizontalDash05Dash04 => '🁘',
DominoTiles::DominoTileHorizontalDash05Dash05 => '🁙',
DominoTiles::DominoTileHorizontalDash05Dash06 => '🁚',
DominoTiles::DominoTileHorizontalDash06Dash00 => '🁛',
DominoTiles::DominoTileHorizontalDash06Dash01 => '🁜',
DominoTiles::DominoTileHorizontalDash06Dash02 => '🁝',
DominoTiles::DominoTileHorizontalDash06Dash03 => '🁞',
DominoTiles::DominoTileHorizontalDash06Dash04 => '🁟',
DominoTiles::DominoTileHorizontalDash06Dash05 => '🁠',
DominoTiles::DominoTileHorizontalDash06Dash06 => '🁡',
DominoTiles::DominoTileVerticalBack => '🁢',
DominoTiles::DominoTileVerticalDash00Dash00 => '🁣',
DominoTiles::DominoTileVerticalDash00Dash01 => '🁤',
DominoTiles::DominoTileVerticalDash00Dash02 => '🁥',
DominoTiles::DominoTileVerticalDash00Dash03 => '🁦',
DominoTiles::DominoTileVerticalDash00Dash04 => '🁧',
DominoTiles::DominoTileVerticalDash00Dash05 => '🁨',
DominoTiles::DominoTileVerticalDash00Dash06 => '🁩',
DominoTiles::DominoTileVerticalDash01Dash00 => '🁪',
DominoTiles::DominoTileVerticalDash01Dash01 => '🁫',
DominoTiles::DominoTileVerticalDash01Dash02 => '🁬',
DominoTiles::DominoTileVerticalDash01Dash03 => '🁭',
DominoTiles::DominoTileVerticalDash01Dash04 => '🁮',
DominoTiles::DominoTileVerticalDash01Dash05 => '🁯',
DominoTiles::DominoTileVerticalDash01Dash06 => '🁰',
DominoTiles::DominoTileVerticalDash02Dash00 => '🁱',
DominoTiles::DominoTileVerticalDash02Dash01 => '🁲',
DominoTiles::DominoTileVerticalDash02Dash02 => '🁳',
DominoTiles::DominoTileVerticalDash02Dash03 => '🁴',
DominoTiles::DominoTileVerticalDash02Dash04 => '🁵',
DominoTiles::DominoTileVerticalDash02Dash05 => '🁶',
DominoTiles::DominoTileVerticalDash02Dash06 => '🁷',
DominoTiles::DominoTileVerticalDash03Dash00 => '🁸',
DominoTiles::DominoTileVerticalDash03Dash01 => '🁹',
DominoTiles::DominoTileVerticalDash03Dash02 => '🁺',
DominoTiles::DominoTileVerticalDash03Dash03 => '🁻',
DominoTiles::DominoTileVerticalDash03Dash04 => '🁼',
DominoTiles::DominoTileVerticalDash03Dash05 => '🁽',
DominoTiles::DominoTileVerticalDash03Dash06 => '🁾',
DominoTiles::DominoTileVerticalDash04Dash00 => '🁿',
DominoTiles::DominoTileVerticalDash04Dash01 => '🂀',
DominoTiles::DominoTileVerticalDash04Dash02 => '🂁',
DominoTiles::DominoTileVerticalDash04Dash03 => '🂂',
DominoTiles::DominoTileVerticalDash04Dash04 => '🂃',
DominoTiles::DominoTileVerticalDash04Dash05 => '🂄',
DominoTiles::DominoTileVerticalDash04Dash06 => '🂅',
DominoTiles::DominoTileVerticalDash05Dash00 => '🂆',
DominoTiles::DominoTileVerticalDash05Dash01 => '🂇',
DominoTiles::DominoTileVerticalDash05Dash02 => '🂈',
DominoTiles::DominoTileVerticalDash05Dash03 => '🂉',
DominoTiles::DominoTileVerticalDash05Dash04 => '🂊',
DominoTiles::DominoTileVerticalDash05Dash05 => '🂋',
DominoTiles::DominoTileVerticalDash05Dash06 => '🂌',
DominoTiles::DominoTileVerticalDash06Dash00 => '🂍',
DominoTiles::DominoTileVerticalDash06Dash01 => '🂎',
DominoTiles::DominoTileVerticalDash06Dash02 => '🂏',
DominoTiles::DominoTileVerticalDash06Dash03 => '🂐',
DominoTiles::DominoTileVerticalDash06Dash04 => '🂑',
DominoTiles::DominoTileVerticalDash06Dash05 => '🂒',
DominoTiles::DominoTileVerticalDash06Dash06 => '🂓',
}
}
}
impl std::convert::TryFrom<char> for DominoTiles {
type Error = ();
fn try_from(c: char) -> Result<Self, Self::Error> {
match c {
'🀰' => Ok(DominoTiles::DominoTileHorizontalBack),
'🀱' => Ok(DominoTiles::DominoTileHorizontalDash00Dash00),
'🀲' => Ok(DominoTiles::DominoTileHorizontalDash00Dash01),
'🀳' => Ok(DominoTiles::DominoTileHorizontalDash00Dash02),
'🀴' => Ok(DominoTiles::DominoTileHorizontalDash00Dash03),
'🀵' => Ok(DominoTiles::DominoTileHorizontalDash00Dash04),
'🀶' => Ok(DominoTiles::DominoTileHorizontalDash00Dash05),
'🀷' => Ok(DominoTiles::DominoTileHorizontalDash00Dash06),
'🀸' => Ok(DominoTiles::DominoTileHorizontalDash01Dash00),
'🀹' => Ok(DominoTiles::DominoTileHorizontalDash01Dash01),
'🀺' => Ok(DominoTiles::DominoTileHorizontalDash01Dash02),
'🀻' => Ok(DominoTiles::DominoTileHorizontalDash01Dash03),
'🀼' => Ok(DominoTiles::DominoTileHorizontalDash01Dash04),
'🀽' => Ok(DominoTiles::DominoTileHorizontalDash01Dash05),
'🀾' => Ok(DominoTiles::DominoTileHorizontalDash01Dash06),
'🀿' => Ok(DominoTiles::DominoTileHorizontalDash02Dash00),
'🁀' => Ok(DominoTiles::DominoTileHorizontalDash02Dash01),
'🁁' => Ok(DominoTiles::DominoTileHorizontalDash02Dash02),
'🁂' => Ok(DominoTiles::DominoTileHorizontalDash02Dash03),
'🁃' => Ok(DominoTiles::DominoTileHorizontalDash02Dash04),
'🁄' => Ok(DominoTiles::DominoTileHorizontalDash02Dash05),
'🁅' => Ok(DominoTiles::DominoTileHorizontalDash02Dash06),
'🁆' => Ok(DominoTiles::DominoTileHorizontalDash03Dash00),
'🁇' => Ok(DominoTiles::DominoTileHorizontalDash03Dash01),
'🁈' => Ok(DominoTiles::DominoTileHorizontalDash03Dash02),
'🁉' => Ok(DominoTiles::DominoTileHorizontalDash03Dash03),
'🁊' => Ok(DominoTiles::DominoTileHorizontalDash03Dash04),
'🁋' => Ok(DominoTiles::DominoTileHorizontalDash03Dash05),
'🁌' => Ok(DominoTiles::DominoTileHorizontalDash03Dash06),
'🁍' => Ok(DominoTiles::DominoTileHorizontalDash04Dash00),
'🁎' => Ok(DominoTiles::DominoTileHorizontalDash04Dash01),
'🁏' => Ok(DominoTiles::DominoTileHorizontalDash04Dash02),
'🁐' => Ok(DominoTiles::DominoTileHorizontalDash04Dash03),
'🁑' => Ok(DominoTiles::DominoTileHorizontalDash04Dash04),
'🁒' => Ok(DominoTiles::DominoTileHorizontalDash04Dash05),
'🁓' => Ok(DominoTiles::DominoTileHorizontalDash04Dash06),
'🁔' => Ok(DominoTiles::DominoTileHorizontalDash05Dash00),
'🁕' => Ok(DominoTiles::DominoTileHorizontalDash05Dash01),
'🁖' => Ok(DominoTiles::DominoTileHorizontalDash05Dash02),
'🁗' => Ok(DominoTiles::DominoTileHorizontalDash05Dash03),
'🁘' => Ok(DominoTiles::DominoTileHorizontalDash05Dash04),
'🁙' => Ok(DominoTiles::DominoTileHorizontalDash05Dash05),
'🁚' => Ok(DominoTiles::DominoTileHorizontalDash05Dash06),
'🁛' => Ok(DominoTiles::DominoTileHorizontalDash06Dash00),
'🁜' => Ok(DominoTiles::DominoTileHorizontalDash06Dash01),
'🁝' => Ok(DominoTiles::DominoTileHorizontalDash06Dash02),
'🁞' => Ok(DominoTiles::DominoTileHorizontalDash06Dash03),
'🁟' => Ok(DominoTiles::DominoTileHorizontalDash06Dash04),
'🁠' => Ok(DominoTiles::DominoTileHorizontalDash06Dash05),
'🁡' => Ok(DominoTiles::DominoTileHorizontalDash06Dash06),
'🁢' => Ok(DominoTiles::DominoTileVerticalBack),
'🁣' => Ok(DominoTiles::DominoTileVerticalDash00Dash00),
'🁤' => Ok(DominoTiles::DominoTileVerticalDash00Dash01),
'🁥' => Ok(DominoTiles::DominoTileVerticalDash00Dash02),
'🁦' => Ok(DominoTiles::DominoTileVerticalDash00Dash03),
'🁧' => Ok(DominoTiles::DominoTileVerticalDash00Dash04),
'🁨' => Ok(DominoTiles::DominoTileVerticalDash00Dash05),
'🁩' => Ok(DominoTiles::DominoTileVerticalDash00Dash06),
'🁪' => Ok(DominoTiles::DominoTileVerticalDash01Dash00),
'🁫' => Ok(DominoTiles::DominoTileVerticalDash01Dash01),
'🁬' => Ok(DominoTiles::DominoTileVerticalDash01Dash02),
'🁭' => Ok(DominoTiles::DominoTileVerticalDash01Dash03),
'🁮' => Ok(DominoTiles::DominoTileVerticalDash01Dash04),
'🁯' => Ok(DominoTiles::DominoTileVerticalDash01Dash05),
'🁰' => Ok(DominoTiles::DominoTileVerticalDash01Dash06),
'🁱' => Ok(DominoTiles::DominoTileVerticalDash02Dash00),
'🁲' => Ok(DominoTiles::DominoTileVerticalDash02Dash01),
'🁳' => Ok(DominoTiles::DominoTileVerticalDash02Dash02),
'🁴' => Ok(DominoTiles::DominoTileVerticalDash02Dash03),
'🁵' => Ok(DominoTiles::DominoTileVerticalDash02Dash04),
'🁶' => Ok(DominoTiles::DominoTileVerticalDash02Dash05),
'🁷' => Ok(DominoTiles::DominoTileVerticalDash02Dash06),
'🁸' => Ok(DominoTiles::DominoTileVerticalDash03Dash00),
'🁹' => Ok(DominoTiles::DominoTileVerticalDash03Dash01),
'🁺' => Ok(DominoTiles::DominoTileVerticalDash03Dash02),
'🁻' => Ok(DominoTiles::DominoTileVerticalDash03Dash03),
'🁼' => Ok(DominoTiles::DominoTileVerticalDash03Dash04),
'🁽' => Ok(DominoTiles::DominoTileVerticalDash03Dash05),
'🁾' => Ok(DominoTiles::DominoTileVerticalDash03Dash06),
'🁿' => Ok(DominoTiles::DominoTileVerticalDash04Dash00),
'🂀' => Ok(DominoTiles::DominoTileVerticalDash04Dash01),
'🂁' => Ok(DominoTiles::DominoTileVerticalDash04Dash02),
'🂂' => Ok(DominoTiles::DominoTileVerticalDash04Dash03),
'🂃' => Ok(DominoTiles::DominoTileVerticalDash04Dash04),
'🂄' => Ok(DominoTiles::DominoTileVerticalDash04Dash05),
'🂅' => Ok(DominoTiles::DominoTileVerticalDash04Dash06),
'🂆' => Ok(DominoTiles::DominoTileVerticalDash05Dash00),
'🂇' => Ok(DominoTiles::DominoTileVerticalDash05Dash01),
'🂈' => Ok(DominoTiles::DominoTileVerticalDash05Dash02),
'🂉' => Ok(DominoTiles::DominoTileVerticalDash05Dash03),
'🂊' => Ok(DominoTiles::DominoTileVerticalDash05Dash04),
'🂋' => Ok(DominoTiles::DominoTileVerticalDash05Dash05),
'🂌' => Ok(DominoTiles::DominoTileVerticalDash05Dash06),
'🂍' => Ok(DominoTiles::DominoTileVerticalDash06Dash00),
'🂎' => Ok(DominoTiles::DominoTileVerticalDash06Dash01),
'🂏' => Ok(DominoTiles::DominoTileVerticalDash06Dash02),
'🂐' => Ok(DominoTiles::DominoTileVerticalDash06Dash03),
'🂑' => Ok(DominoTiles::DominoTileVerticalDash06Dash04),
'🂒' => Ok(DominoTiles::DominoTileVerticalDash06Dash05),
'🂓' => Ok(DominoTiles::DominoTileVerticalDash06Dash06),
_ => Err(()),
}
}
}
impl Into<u32> for DominoTiles {
fn into(self) -> u32 {
let c: char = self.into();
let hex = c
.escape_unicode()
.to_string()
.replace("\\u{", "")
.replace("}", "");
u32::from_str_radix(&hex, 16).unwrap()
}
}
impl std::convert::TryFrom<u32> for DominoTiles {
type Error = ();
fn try_from(u: u32) -> Result<Self, Self::Error> {
if let Ok(c) = char::try_from(u) {
Self::try_from(c)
} else {
Err(())
}
}
}
impl Iterator for DominoTiles {
type Item = Self;
fn next(&mut self) -> Option<Self> {
let index: u32 = (*self).into();
use std::convert::TryFrom;
Self::try_from(index + 1).ok()
}
}
impl DominoTiles {
pub fn new() -> Self {
DominoTiles::DominoTileHorizontalBack
}
pub fn name(&self) -> String {
let s = std::format!("DominoTiles{:#?}", self);
string_morph::to_sentence_case(&s)
}
}