Build Status Coverage Status

Matrix Display

A simple rust library to visualize 2D matrixes in rust.

Build

Run

Example: visualising a chess board

``` extern crate matrixdisplay; use matrixdisplay::*;

fn main() { let format = Format::new(7, 3); let board = vec!['♜', '♞', '♝', '♛', '♚', '♝', '♞', '♜', '♟', '♟', '♟', '♟', '♟', '♟', '♟', '♟', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '♖', '♘', '♗', '♕', '♔', '♗', '♘', '♖', '♙', '♙', '♙', '♙', '♙', '♙', '♙', '♙'] .iter() .enumerate() .map(|(i, x)| { let ansifg = 28; let mut ansibg = 0; if i % 2 + (i / 8) % 2 == 1 { ansibg = 7; } cell::Cell::new(x.clone(), ansifg, ansi_bg) }) .collect::>(); let data = matrix::Matrix::new(8, board); let display = MatrixDisplay::new(format, data); display.print(&mut std::io::stdout(), &style::BordersStyle::Rounded); } ``` alt tag

Example: visualising a 2048 game

``` extern crate matrixdisplay; use matrixdisplay::*;

fn main() { let format = Format::new(7, 3); let colourtheme = vec![247, 78, 222, 220, 214, 208, 202, 196, 162, 160, 126, 90, 88, 54, 53, 52]; let board = (0..16) .map(|x| { cell::Cell::new(2f64.powi(x + 1), 7, *colour_theme.get(x as usize).unwrap() as u8) }) .collect::>(); let data = matrix::Matrix::new(4, board); let display = MatrixDisplay::new(format, data); display.print(&mut std::io::stdout(), &style::BordersStyle::Thick); } ```

alt tag

Example: visualising a 256 colors palette

``` extern crate matrixdisplay; use matrixdisplay::*;

fn main() { let format = Format::new(5, 1); let board = (0..256) .map(|x| cell::Cell::new(x, 0, x as u8)) .collect::>(); let data = matrix::Matrix::new(8, board); let display = MatrixDisplay::new(format, data); display.print(&mut std::io::stdout(), &style::BordersStyle::Thin); ```

alt tag