File: split.rs

package info (click to toggle)
rustc-web 1.85.0%2Bdfsg3-1~deb12u3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bookworm-proposed-updates
  • size: 1,759,988 kB
  • sloc: xml: 158,127; python: 35,830; javascript: 19,497; cpp: 19,002; sh: 17,245; ansic: 13,127; asm: 4,376; makefile: 1,056; lisp: 29; perl: 29; ruby: 19; sql: 11
file content (43 lines) | stat: -rw-r--r-- 1,264 bytes parent folder | download | duplicates (17)
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
//! This example demonstrates using the [`Split`] [`TableOption`] to
//! transform a [`Table`] display in multiple ways.
//!
//! * Several configurations are available to customize a [`Split`] instruction:
//!     * [`Index`](usize)
//!     * [`Behavior`]
//!     * [`Direction`]
//!     * [`Display`]

use std::iter::FromIterator;
use tabled::{
    col, row,
    settings::{split::Split, style::Style, Padding},
    Table,
};

fn main() {
    let mut table = Table::from_iter(['a'..='z']);
    table.with(Style::modern());

    let table_1 = table.clone().with(Split::column(12)).clone();
    let table_2 = table_1.clone().with(Split::column(2).zip()).to_string();
    let table_3 = table_1.clone().with(Split::column(2).concat()).to_string();
    let table_4 = table_1.clone().with(Split::row(2).zip()).to_string();
    let table_5 = table_1.clone().with(Split::row(2).concat()).to_string();

    let mut table = col![
        table,
        row![
            table_1,
            table_2,
            table_3,
            col![table_4, table_5]
                .with(Style::blank())
                .with(Padding::zero())
        ]
        .with(Style::blank())
        .with(Padding::zero()),
    ];
    table.with(Style::blank());

    println!("{table}");
}