File: height.rs

package info (click to toggle)
rust-tabled 0.18.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,408 kB
  • sloc: makefile: 4
file content (49 lines) | stat: -rw-r--r-- 1,570 bytes parent folder | download
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
38
39
40
41
42
43
44
45
46
47
48
49
//! This example demonstrates using the [`Height`] [`TableOption`] for adjusting
//! the height of a [`Table`].
//!
//! * [`Height`] supports three key features:
//!     * [`CellHeightIncrease`] spreads new whitespace between the [`Table`]
//!       rows up to the specified line count.
//!     * [`CellHeightLimit`] removes lines from the [`Table`] rows fairly, until
//!       it has no choice but to remove single-line-rows entirely, bottom up.
//!     * [`HeightList`] accepts an array of height specifications that are applied
//!       to the rows with the same index. This is helpful for granularly specifying individual
//!       row heights irrespective of [`Padding`] or [`Margin`].

use tabled::{
    settings::{peaker::Priority, Height, Style},
    Table,
};

fn main() {
    let data = vec![("Multi\nline\nstring", 123), ("Single line", 234)];

    let mut table = Table::builder(data).build();
    table.with(Style::markdown());

    println!("Table\n");
    println!("{table}");
    println!();

    let table_ = table.clone().with(Height::increase(10)).to_string();

    println!("Table increase height to 10\n");
    println!("{table_}");
    println!();

    let table_ = table
        .clone()
        .with(Height::limit(4).priority(Priority::max(true)))
        .to_string();

    println!("Table decrease height to 4\n");
    println!("{table_}");

    let table_ = table
        .clone()
        .with(Height::limit(0).priority(Priority::max(true)))
        .to_string();

    println!("Table decrease height to 0\n");
    println!("{table_}");
}