ascii_table 5.0.0

Print ASCII tables to the terminal
Documentation
# ascii_table

Print ASCII tables to the terminal.

## Example

```
use ::ascii_table::AsciiTable;

let ascii_table = AsciiTable::new();
let data = &[&["1", "2", "3"], &["4", "5", "6"], &["7", "8", "9"]];
ascii_table.println(data);
// ┌───┬───┬───┐
// │ 1 │ 2 │ 3 │
// │ 4 │ 5 │ 6 │
// │ 7 │ 8 │ 9 │
// └───┴───┴───┘
```

## Example

```
use ::ascii_table::{Align, AsciiTable, Width};

let mut ascii_table = AsciiTable::new();
ascii_table.set_max_width(Width::Fixed(26));
ascii_table
    .column(0)
    .set_header("H1")
    .set_align(Align::Left);
ascii_table
    .column(1)
    .set_header("H2")
    .set_align(Align::Center);
ascii_table
    .column(2)
    .set_header("H3")
    .set_align(Align::Right);

let data: &[&[&str]] = &[&["v", "v", "v"], &["123", "456", "789", "abcdef"]];
ascii_table.println(data);
// ┌─────┬─────┬─────┬──────┐
// │ H1  │ H2  │ H3  │      │
// ├─────┼─────┼─────┼──────┤
// │ v   │  v  │   v │      │
// │ 123 │ 456 │ 789 │ abc+ │
// └─────┴─────┴─────┴──────┘
```

## Features

- `auto_table_width`: Sets the default max width of the Ascii Table to the width of the terminal.
- `color_codes`: Correctly calculates the width of a string when terminal color codes are present
  (like those from the `colorful` crate).
- `wide_characters`: Correctly calculates the width of a string when wide characters are present
  (like emoji's).

## Changelog

### v5.0.0 (2025-11-30)

- Complete rewrite. All the features are still the same except Ascii Table no longer accepts 2D arrays
  of `Display`. You will have to stringify your data before you give it to Ascii Table.

### v4.0.8 (2025-10-12)

- Replaced the crate `termsize` with `termize` to fix a edge-case where it was unable to get the terminal
  width on some SSH sessions. This will only affect the `auto_table_width` feature.

### v4.0.7 (2025-05-14)

- Replaced the crate `lazy_static` with `std::sync::LazyLock`. This change is only for the `color_codes`
  feature.

### v4.0.6 (2025-02-25)

- Bumped Rust edition to 2024.
- Replaced `termion` with the more lightweight `termsize`. This will only affect the `auto_table_width`
  feature.

### v4.0.5 (2024-11-20)

- Bumped crate unicode-width from 0.1 to 0.2.

### v4.0.4 (2024-08-28)

- Bumped versions on 3rd party crates.

### v4.0.3 (2023-08-28)

- Added documentation to explain Ascii Table's features.
- Some minor refactoring.

### v4.0.2 (2022-01-25)

- Created a new feature `auto_table_width`. It will set the default max width of your ascii table to
  the width of your terminal. Note that `AsciiTable::set_max_width` will override this value.
- Changed ascii table default max width from 80 to 100.

### v4.0.1 (2022-01-24)

- Moved color code parsing to its own feature `color_codes`. Enable this feature when you want to display
  colors in the terminal using the `colorful` crate.
- Created a new feature `wide_characters` who will use unicode rules to determine the width of strings.
  Use this feature when you want to display emoji's or other wide characters.

### v4.0.0 (2022-01-23)

- Revamped API.