1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466

/// An enum to represent all characters in the DominoTiles block.
#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
pub enum DominoTiles {
    /// \u{1f030}: '🀰'
    DominoTileHorizontalBack,
    /// \u{1f031}: '🀱'
    DominoTileHorizontalDash00Dash00,
    /// \u{1f032}: '🀲'
    DominoTileHorizontalDash00Dash01,
    /// \u{1f033}: '🀳'
    DominoTileHorizontalDash00Dash02,
    /// \u{1f034}: '🀴'
    DominoTileHorizontalDash00Dash03,
    /// \u{1f035}: '🀵'
    DominoTileHorizontalDash00Dash04,
    /// \u{1f036}: '🀶'
    DominoTileHorizontalDash00Dash05,
    /// \u{1f037}: '🀷'
    DominoTileHorizontalDash00Dash06,
    /// \u{1f038}: '🀸'
    DominoTileHorizontalDash01Dash00,
    /// \u{1f039}: '🀹'
    DominoTileHorizontalDash01Dash01,
    /// \u{1f03a}: '🀺'
    DominoTileHorizontalDash01Dash02,
    /// \u{1f03b}: '🀻'
    DominoTileHorizontalDash01Dash03,
    /// \u{1f03c}: '🀼'
    DominoTileHorizontalDash01Dash04,
    /// \u{1f03d}: '🀽'
    DominoTileHorizontalDash01Dash05,
    /// \u{1f03e}: '🀾'
    DominoTileHorizontalDash01Dash06,
    /// \u{1f03f}: '🀿'
    DominoTileHorizontalDash02Dash00,
    /// \u{1f040}: '🁀'
    DominoTileHorizontalDash02Dash01,
    /// \u{1f041}: '🁁'
    DominoTileHorizontalDash02Dash02,
    /// \u{1f042}: '🁂'
    DominoTileHorizontalDash02Dash03,
    /// \u{1f043}: '🁃'
    DominoTileHorizontalDash02Dash04,
    /// \u{1f044}: '🁄'
    DominoTileHorizontalDash02Dash05,
    /// \u{1f045}: '🁅'
    DominoTileHorizontalDash02Dash06,
    /// \u{1f046}: '🁆'
    DominoTileHorizontalDash03Dash00,
    /// \u{1f047}: '🁇'
    DominoTileHorizontalDash03Dash01,
    /// \u{1f048}: '🁈'
    DominoTileHorizontalDash03Dash02,
    /// \u{1f049}: '🁉'
    DominoTileHorizontalDash03Dash03,
    /// \u{1f04a}: '🁊'
    DominoTileHorizontalDash03Dash04,
    /// \u{1f04b}: '🁋'
    DominoTileHorizontalDash03Dash05,
    /// \u{1f04c}: '🁌'
    DominoTileHorizontalDash03Dash06,
    /// \u{1f04d}: '🁍'
    DominoTileHorizontalDash04Dash00,
    /// \u{1f04e}: '🁎'
    DominoTileHorizontalDash04Dash01,
    /// \u{1f04f}: '🁏'
    DominoTileHorizontalDash04Dash02,
    /// \u{1f050}: '🁐'
    DominoTileHorizontalDash04Dash03,
    /// \u{1f051}: '🁑'
    DominoTileHorizontalDash04Dash04,
    /// \u{1f052}: '🁒'
    DominoTileHorizontalDash04Dash05,
    /// \u{1f053}: '🁓'
    DominoTileHorizontalDash04Dash06,
    /// \u{1f054}: '🁔'
    DominoTileHorizontalDash05Dash00,
    /// \u{1f055}: '🁕'
    DominoTileHorizontalDash05Dash01,
    /// \u{1f056}: '🁖'
    DominoTileHorizontalDash05Dash02,
    /// \u{1f057}: '🁗'
    DominoTileHorizontalDash05Dash03,
    /// \u{1f058}: '🁘'
    DominoTileHorizontalDash05Dash04,
    /// \u{1f059}: '🁙'
    DominoTileHorizontalDash05Dash05,
    /// \u{1f05a}: '🁚'
    DominoTileHorizontalDash05Dash06,
    /// \u{1f05b}: '🁛'
    DominoTileHorizontalDash06Dash00,
    /// \u{1f05c}: '🁜'
    DominoTileHorizontalDash06Dash01,
    /// \u{1f05d}: '🁝'
    DominoTileHorizontalDash06Dash02,
    /// \u{1f05e}: '🁞'
    DominoTileHorizontalDash06Dash03,
    /// \u{1f05f}: '🁟'
    DominoTileHorizontalDash06Dash04,
    /// \u{1f060}: '🁠'
    DominoTileHorizontalDash06Dash05,
    /// \u{1f061}: '🁡'
    DominoTileHorizontalDash06Dash06,
    /// \u{1f062}: '🁢'
    DominoTileVerticalBack,
    /// \u{1f063}: '🁣'
    DominoTileVerticalDash00Dash00,
    /// \u{1f064}: '🁤'
    DominoTileVerticalDash00Dash01,
    /// \u{1f065}: '🁥'
    DominoTileVerticalDash00Dash02,
    /// \u{1f066}: '🁦'
    DominoTileVerticalDash00Dash03,
    /// \u{1f067}: '🁧'
    DominoTileVerticalDash00Dash04,
    /// \u{1f068}: '🁨'
    DominoTileVerticalDash00Dash05,
    /// \u{1f069}: '🁩'
    DominoTileVerticalDash00Dash06,
    /// \u{1f06a}: '🁪'
    DominoTileVerticalDash01Dash00,
    /// \u{1f06b}: '🁫'
    DominoTileVerticalDash01Dash01,
    /// \u{1f06c}: '🁬'
    DominoTileVerticalDash01Dash02,
    /// \u{1f06d}: '🁭'
    DominoTileVerticalDash01Dash03,
    /// \u{1f06e}: '🁮'
    DominoTileVerticalDash01Dash04,
    /// \u{1f06f}: '🁯'
    DominoTileVerticalDash01Dash05,
    /// \u{1f070}: '🁰'
    DominoTileVerticalDash01Dash06,
    /// \u{1f071}: '🁱'
    DominoTileVerticalDash02Dash00,
    /// \u{1f072}: '🁲'
    DominoTileVerticalDash02Dash01,
    /// \u{1f073}: '🁳'
    DominoTileVerticalDash02Dash02,
    /// \u{1f074}: '🁴'
    DominoTileVerticalDash02Dash03,
    /// \u{1f075}: '🁵'
    DominoTileVerticalDash02Dash04,
    /// \u{1f076}: '🁶'
    DominoTileVerticalDash02Dash05,
    /// \u{1f077}: '🁷'
    DominoTileVerticalDash02Dash06,
    /// \u{1f078}: '🁸'
    DominoTileVerticalDash03Dash00,
    /// \u{1f079}: '🁹'
    DominoTileVerticalDash03Dash01,
    /// \u{1f07a}: '🁺'
    DominoTileVerticalDash03Dash02,
    /// \u{1f07b}: '🁻'
    DominoTileVerticalDash03Dash03,
    /// \u{1f07c}: '🁼'
    DominoTileVerticalDash03Dash04,
    /// \u{1f07d}: '🁽'
    DominoTileVerticalDash03Dash05,
    /// \u{1f07e}: '🁾'
    DominoTileVerticalDash03Dash06,
    /// \u{1f07f}: '🁿'
    DominoTileVerticalDash04Dash00,
    /// \u{1f080}: '🂀'
    DominoTileVerticalDash04Dash01,
    /// \u{1f081}: '🂁'
    DominoTileVerticalDash04Dash02,
    /// \u{1f082}: '🂂'
    DominoTileVerticalDash04Dash03,
    /// \u{1f083}: '🂃'
    DominoTileVerticalDash04Dash04,
    /// \u{1f084}: '🂄'
    DominoTileVerticalDash04Dash05,
    /// \u{1f085}: '🂅'
    DominoTileVerticalDash04Dash06,
    /// \u{1f086}: '🂆'
    DominoTileVerticalDash05Dash00,
    /// \u{1f087}: '🂇'
    DominoTileVerticalDash05Dash01,
    /// \u{1f088}: '🂈'
    DominoTileVerticalDash05Dash02,
    /// \u{1f089}: '🂉'
    DominoTileVerticalDash05Dash03,
    /// \u{1f08a}: '🂊'
    DominoTileVerticalDash05Dash04,
    /// \u{1f08b}: '🂋'
    DominoTileVerticalDash05Dash05,
    /// \u{1f08c}: '🂌'
    DominoTileVerticalDash05Dash06,
    /// \u{1f08d}: '🂍'
    DominoTileVerticalDash06Dash00,
    /// \u{1f08e}: '🂎'
    DominoTileVerticalDash06Dash01,
    /// \u{1f08f}: '🂏'
    DominoTileVerticalDash06Dash02,
    /// \u{1f090}: '🂐'
    DominoTileVerticalDash06Dash03,
    /// \u{1f091}: '🂑'
    DominoTileVerticalDash06Dash04,
    /// \u{1f092}: '🂒'
    DominoTileVerticalDash06Dash05,
    /// \u{1f093}: '🂓'
    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 {
    /// The character with the lowest index in this unicode block
    pub fn new() -> Self {
        DominoTiles::DominoTileHorizontalBack
    }

    /// The character's name, in sentence case
    pub fn name(&self) -> String {
        let s = std::format!("DominoTiles{:#?}", self);
        string_morph::to_sentence_case(&s)
    }
}