fancy-table 0.4.1

Fancy tables with bells and whistles
Documentation
use charset::{Charset, TableChars};

pub mod ansi;
pub mod charset;
mod fancy;
mod juststr;

pub enum Layout {
    Slim,
    Fixed(usize),
    Expandable(usize),
}

pub enum Overflow {
    Wrap,
    Truncate,
}

pub enum Align {
    Center,
    Left,
    Right,
}

pub enum TitleAlign {
    LeftOffset(usize),
    RightOffset(usize),
}

pub enum Separator {
    Single,
    Double,
    Custom(char),
}

pub struct FancyTableOpts {
    pub title_align: TitleAlign,
    pub charset: Charset,
    pub headers_separator: Option<Separator>,
    pub rows_separator: Option<Separator>,
    pub max_lines: usize,
}

pub struct FancyTable<'a, T: AsRef<str>> {
    width: usize,
    chars: TableChars,
    padding: usize,
    columns: Vec<ColSpec>,
    headers: Vec<T>,
    rows_separator: Option<Separator>,
    headers_separator: Option<Separator>,
    title: Option<TitleSpec<'a>>,
}

pub struct FancyTableBuilder<'a, T: AsRef<str>> {
    width: usize,
    padding: usize,
    max_lines: usize,
    rows_separator: Option<Separator>,
    headers_separator: Option<Separator>,
    charset: Charset,
    headers: Vec<T>,
    columns: Vec<ColSpec>,
    title: Option<&'a str>,
    title_align: TitleAlign,
}

struct ColSpec {
    width: usize,
    max_lines: usize,
    align: Align,
    layout: Layout,
    overflow: Overflow,
}

struct TitleSpec<'a> {
    title: &'a str,
    align: TitleAlign,
}

#[doc(hidden)]
pub use juststr::JustedString;

#[doc(hidden)]
pub use juststr::Justify;