-
Notifications
You must be signed in to change notification settings - Fork 76
/
Copy pathformatting.rs
88 lines (82 loc) · 3.18 KB
/
formatting.rs
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#[macro_use] extern crate prettytable;
use prettytable::format;
fn main() {
let mut table = table!(["Value 1", "Value 2"], ["Value three", "Value four"]);
table.set_titles(row!["Title 1", "Title 2"]);
// Print
// +-------------+------------+
// | Title 1 | Title 2 |
// +-------------+------------+
// | Value 1 | Value 2 |
// | Value three | Value four |
// +-------------+------------+
println!("FORMAT_NO_LINESEP_WITH_TITLE :");
table.set_format(*format::consts::FORMAT_NO_LINESEP_WITH_TITLE);
table.printstd();
println!("");
// Print
// -------------------------
// Title 1 Title 2
// =========================
// Value 1 Value 2
// -------------------------
// Value three Value four
// -------------------------
println!("FORMAT_NO_COLSEP :");
table.set_format(*format::consts::FORMAT_NO_COLSEP);
table.printstd();
println!("");
// Print
// +-------------------------+
// | Title 1 Title 2 |
// +=========================+
// | Value 1 Value 2 |
// +-------------------------+
// | Value three Value four |
// +-------------------------+
println!("FORMAT_BORDERS_ONLY :");
table.set_format(*format::consts::FORMAT_BORDERS_ONLY);
table.printstd();
println!("");
// Custom format can be implemented using `prettytable::format::FormatBuilder`
// Example to print
// +-------------+------------+
// | Title 1 | Title 2 |
// | Value 1 | Value 2 |
// | Value three | Value four |
// +-------------+------------+
println!("Custom :");
table.set_format(
format::FormatBuilder::new()
.column_separator('|')
.borders('|')
.separators(
&[format::LinePosition::Top, format::LinePosition::Bottom],
format::LineSeparator::new('-', '+', '+', '+')
)
.padding(1, 1)
.build()
);
table.printstd();
// Customized format with unicode
// Example to print
// ┌─────────────┬────────────┐
// | Title 1 | Title 2 |
// ├─────────────┼────────────┤
// | Value 1 | Value 2 |
// ├─────────────┼────────────┤
// | Value three | Value four |
// └─────────────┴────────────┘
println!("With unicode:");
table.set_format(
format::FormatBuilder::new()
.column_separator('|')
.borders('|')
.separators( &[format::LinePosition::Top], format::LineSeparator::new('─', '┬', '┌', '┐'))
.separators( &[format::LinePosition::Intern], format::LineSeparator::new('─', '┼', '├', '┤'))
.separators( &[format::LinePosition::Bottom], format::LineSeparator::new('─', '┴', '└', '┘'))
.padding(1, 1)
.build()
);
table.printstd();
}