summaryrefslogtreecommitdiffstats
path: root/vendor/tabled/examples/chess.rs
blob: db83218c8f03c031550b6033c36d1563113fa2ab (plain)
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
//! This example demonstrates using the [`Color`] [setting](tabled::settings) to
//! stylize text, backgrounds, and borders.
//!
//! * 🚩 This example requires the `color` feature.
//!
//! * Note how [`Format::content()`] is used to break out [`CellOption`]
//! specifications. This is helpful for organizing extensive [`Table`] configurations.

use std::iter::FromIterator;

use tabled::{
    builder::Builder,
    settings::{style::Style, themes::Colorization, Color},
};

fn main() {
    let board = [
        ["♜", "♞", "♝", "♛", "♚", "♝", "♞", "♜"],
        ["♟", "♟", "♟", "♟", "♟", "♟", "♟", "♟"],
        [" ", " ", " ", " ", " ", " ", " ", " "],
        [" ", " ", " ", " ", " ", " ", " ", " "],
        [" ", " ", " ", " ", " ", " ", " ", " "],
        [" ", " ", " ", " ", " ", " ", " ", " "],
        ["♙", "♙", "♙", "♙", "♙", "♙", "♙", "♙"],
        ["♖", "♘", "♗", "♕", "♔", "♗", "♘", "♖"],
    ];

    let color_white = Color::BG_WHITE | Color::FG_BLACK;
    let color_black = Color::FG_WHITE | Color::BG_BLACK;

    let mut table = Builder::from_iter(board).build();
    table
        .with(Style::empty())
        .with(Colorization::chess(color_white, color_black));

    println!("{table}");
}