tabprinter 0.2.0

tabprinter is a Rust library for creating and printing formatted tables in the terminal. It supports various table styles and offers both color and non-color output options.
Documentation
# tabprinter

`tabprinter` is a Rust library for creating and printing formatted tables in the terminal. It supports various table styles and offers both color and non-color output options.

## Features

- Multiple table styles: Simple, Grid, FancyGrid, Clean, Round, Banner, Block, and Amiga
- Customizable column widths and alignments
- Color output support (using termcolor)
- Easy-to-use API for creating and populating tables

## Installation

Add this to your `Cargo.toml`:

```toml
[dependencies]
tabprinter = "0.1.0"
```

## Usage

Here's a basic example of how to use `tabprinter`:

```rust
use tabprinter::{Table, TableStyle, Alignment};
fn main() {
let mut table = Table::new(TableStyle::Grid);
table.add_column("Name", 10, Alignment::Left);
table.add_column("Age", 5, Alignment::Right);
table.add_column("City", 15, Alignment::Center);
table.add_row(vec![
"Alice".to_string(),
"30".to_string(),
"New York".to_string(),
]);
table.add_row(vec![
"Bob".to_string(),
"25".to_string(),
"Los Angeles".to_string(),
]);
table.print().unwrap();
}
```

This will output:

```bash
+------------+-------+-----------------+
| Name | Age | City |
+------------+-------+-----------------+
| Alice | 30 | New York |
| Bob | 25 | Los Angeles |
+------------+-------+-----------------+
```


## Table Styles

`tabprinter` supports the following table styles:

- `Simple`: No borders
- `Grid`: ASCII borders
- `FancyGrid`: Unicode borders
- `Clean`: Minimal borders
- `Round`: Rounded corners
- `Banner`: Top and bottom banners
- `Block`: Block-style borders
- `Amiga`: Amiga-inspired style (color output only)

To change the style, simply use a different `TableStyle` when creating the table:

```rust
let mut table = Table::new(TableStyle::FancyGrid);
```

## Color Output

To use color output, use the `print_color` method instead of `print`:

```rust
use termcolor::{ColorChoice, StandardStream};
let mut stdout = StandardStream::stdout(ColorChoice::Always);
table.print_color(&mut stdout).unwrap();
```


## Examples

Check out the `examples` directory for more usage examples:

- `basic_usage.rs`: Demonstrates basic table creation and printing
- `different_styles.rs`: Shows all available table styles
- `custom_data.rs`: Example of using custom data structures with tables

To run an example:

```bash
cargo run --example basic_usage
```

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.