Struct FormatBuilder

Source
pub struct FormatBuilder { /* private fields */ }
Expand description

A builder to create a TableFormat

Implementations§

Source§

impl FormatBuilder

Source

pub fn new() -> FormatBuilder

Creates a new builder

Examples found in repository?
examples/formatting.rs (line 53)
3fn main() {
4    let mut table = table!(["Value 1", "Value 2"], ["Value three", "Value four"]);
5    table.set_titles(row!["Title 1", "Title 2"]);
6
7    // Print
8    // +-------------+------------+
9    // | Title 1     | Title 2    |
10    // +-------------+------------+
11    // | Value 1     | Value 2    |
12    // | Value three | Value four |
13    // +-------------+------------+
14    println!("FORMAT_NO_LINESEP_WITH_TITLE :");
15    table.set_format(*format::consts::FORMAT_NO_LINESEP_WITH_TITLE);
16    table.printstd();
17    println!("");
18
19    // Print
20    // -------------------------
21    //  Title 1      Title 2
22    // =========================
23    //  Value 1      Value 2
24    // -------------------------
25    //  Value three  Value four
26    // -------------------------
27    println!("FORMAT_NO_COLSEP :");
28    table.set_format(*format::consts::FORMAT_NO_COLSEP);
29    table.printstd();
30    println!("");
31
32    // Print
33    // +-------------------------+
34    // | Title 1      Title 2    |
35    // +=========================+
36    // | Value 1      Value 2    |
37    // | Value three  Value four |
38    // +-------------------------+
39    println!("FORMAT_BORDERS_ONLY :");
40    table.set_format(*format::consts::FORMAT_BORDERS_ONLY);
41    table.printstd();
42    println!("");
43
44    // Custom format can be implemented using `prettytable::format::FormatBuilder`
45    // Example to print
46    // +-------------+------------+
47    // | Title 1     | Title 2    |
48    // | Value 1     | Value 2    |
49    // | Value three | Value four |
50    // +-------------+------------+
51    println!("Custom :");
52    table.set_format(
53        format::FormatBuilder::new()
54            .column_separator('|')
55            .borders('|')
56            .separators(
57                &[format::LinePosition::Top, format::LinePosition::Bottom],
58                format::LineSeparator::new('-', '+', '+', '+'),
59            )
60            .padding(1, 1)
61            .build(),
62    );
63    table.printstd();
64
65    // Customized format with unicode
66    // Example to print
67    // ┌─────────────┬────────────┐
68    // │ Title 1     │ Title 2    │
69    // ├─────────────┼────────────┤
70    // │ Value 1     │ Value 2    │
71    // ├─────────────┼────────────┤
72    // │ Value three │ Value four │
73    // └─────────────┴────────────┘
74    println!("With unicode:");
75    table.set_format(
76        format::FormatBuilder::new()
77            .column_separator('│')
78            .borders('│')
79            .separators(
80                &[format::LinePosition::Top],
81                format::LineSeparator::new('─', '┬', '┌', '┐'),
82            )
83            .separators(
84                &[format::LinePosition::Intern],
85                format::LineSeparator::new('─', '┼', '├', '┤'),
86            )
87            .separators(
88                &[format::LinePosition::Bottom],
89                format::LineSeparator::new('─', '┴', '└', '┘'),
90            )
91            .padding(1, 1)
92            .build(),
93    );
94    table.printstd();
95
96    // Customized format with unicode and different padding
97    // Example to print
98    // ┌───────────────┬──────────────┐
99    // │  Title 1      │  Title 2     │
100    // ├───────────────┼──────────────┤
101    // │  Value 1      │  Value 2     │
102    // ├───────────────┼──────────────┤
103    // │  Value three  │  Value four  │
104    // └───────────────┴──────────────┘
105    // Change individual format settings
106    println!("With unicode and padding:");
107    table.get_format().padding(2, 2);
108    table.printstd();
109}
Source

pub fn padding(self, left: usize, right: usize) -> Self

Set left and right padding

Examples found in repository?
examples/formatting.rs (line 60)
3fn main() {
4    let mut table = table!(["Value 1", "Value 2"], ["Value three", "Value four"]);
5    table.set_titles(row!["Title 1", "Title 2"]);
6
7    // Print
8    // +-------------+------------+
9    // | Title 1     | Title 2    |
10    // +-------------+------------+
11    // | Value 1     | Value 2    |
12    // | Value three | Value four |
13    // +-------------+------------+
14    println!("FORMAT_NO_LINESEP_WITH_TITLE :");
15    table.set_format(*format::consts::FORMAT_NO_LINESEP_WITH_TITLE);
16    table.printstd();
17    println!("");
18
19    // Print
20    // -------------------------
21    //  Title 1      Title 2
22    // =========================
23    //  Value 1      Value 2
24    // -------------------------
25    //  Value three  Value four
26    // -------------------------
27    println!("FORMAT_NO_COLSEP :");
28    table.set_format(*format::consts::FORMAT_NO_COLSEP);
29    table.printstd();
30    println!("");
31
32    // Print
33    // +-------------------------+
34    // | Title 1      Title 2    |
35    // +=========================+
36    // | Value 1      Value 2    |
37    // | Value three  Value four |
38    // +-------------------------+
39    println!("FORMAT_BORDERS_ONLY :");
40    table.set_format(*format::consts::FORMAT_BORDERS_ONLY);
41    table.printstd();
42    println!("");
43
44    // Custom format can be implemented using `prettytable::format::FormatBuilder`
45    // Example to print
46    // +-------------+------------+
47    // | Title 1     | Title 2    |
48    // | Value 1     | Value 2    |
49    // | Value three | Value four |
50    // +-------------+------------+
51    println!("Custom :");
52    table.set_format(
53        format::FormatBuilder::new()
54            .column_separator('|')
55            .borders('|')
56            .separators(
57                &[format::LinePosition::Top, format::LinePosition::Bottom],
58                format::LineSeparator::new('-', '+', '+', '+'),
59            )
60            .padding(1, 1)
61            .build(),
62    );
63    table.printstd();
64
65    // Customized format with unicode
66    // Example to print
67    // ┌─────────────┬────────────┐
68    // │ Title 1     │ Title 2    │
69    // ├─────────────┼────────────┤
70    // │ Value 1     │ Value 2    │
71    // ├─────────────┼────────────┤
72    // │ Value three │ Value four │
73    // └─────────────┴────────────┘
74    println!("With unicode:");
75    table.set_format(
76        format::FormatBuilder::new()
77            .column_separator('│')
78            .borders('│')
79            .separators(
80                &[format::LinePosition::Top],
81                format::LineSeparator::new('─', '┬', '┌', '┐'),
82            )
83            .separators(
84                &[format::LinePosition::Intern],
85                format::LineSeparator::new('─', '┼', '├', '┤'),
86            )
87            .separators(
88                &[format::LinePosition::Bottom],
89                format::LineSeparator::new('─', '┴', '└', '┘'),
90            )
91            .padding(1, 1)
92            .build(),
93    );
94    table.printstd();
95
96    // Customized format with unicode and different padding
97    // Example to print
98    // ┌───────────────┬──────────────┐
99    // │  Title 1      │  Title 2     │
100    // ├───────────────┼──────────────┤
101    // │  Value 1      │  Value 2     │
102    // ├───────────────┼──────────────┤
103    // │  Value three  │  Value four  │
104    // └───────────────┴──────────────┘
105    // Change individual format settings
106    println!("With unicode and padding:");
107    table.get_format().padding(2, 2);
108    table.printstd();
109}
Source

pub fn column_separator(self, separator: char) -> Self

Set the character used for internal column separation

Examples found in repository?
examples/formatting.rs (line 54)
3fn main() {
4    let mut table = table!(["Value 1", "Value 2"], ["Value three", "Value four"]);
5    table.set_titles(row!["Title 1", "Title 2"]);
6
7    // Print
8    // +-------------+------------+
9    // | Title 1     | Title 2    |
10    // +-------------+------------+
11    // | Value 1     | Value 2    |
12    // | Value three | Value four |
13    // +-------------+------------+
14    println!("FORMAT_NO_LINESEP_WITH_TITLE :");
15    table.set_format(*format::consts::FORMAT_NO_LINESEP_WITH_TITLE);
16    table.printstd();
17    println!("");
18
19    // Print
20    // -------------------------
21    //  Title 1      Title 2
22    // =========================
23    //  Value 1      Value 2
24    // -------------------------
25    //  Value three  Value four
26    // -------------------------
27    println!("FORMAT_NO_COLSEP :");
28    table.set_format(*format::consts::FORMAT_NO_COLSEP);
29    table.printstd();
30    println!("");
31
32    // Print
33    // +-------------------------+
34    // | Title 1      Title 2    |
35    // +=========================+
36    // | Value 1      Value 2    |
37    // | Value three  Value four |
38    // +-------------------------+
39    println!("FORMAT_BORDERS_ONLY :");
40    table.set_format(*format::consts::FORMAT_BORDERS_ONLY);
41    table.printstd();
42    println!("");
43
44    // Custom format can be implemented using `prettytable::format::FormatBuilder`
45    // Example to print
46    // +-------------+------------+
47    // | Title 1     | Title 2    |
48    // | Value 1     | Value 2    |
49    // | Value three | Value four |
50    // +-------------+------------+
51    println!("Custom :");
52    table.set_format(
53        format::FormatBuilder::new()
54            .column_separator('|')
55            .borders('|')
56            .separators(
57                &[format::LinePosition::Top, format::LinePosition::Bottom],
58                format::LineSeparator::new('-', '+', '+', '+'),
59            )
60            .padding(1, 1)
61            .build(),
62    );
63    table.printstd();
64
65    // Customized format with unicode
66    // Example to print
67    // ┌─────────────┬────────────┐
68    // │ Title 1     │ Title 2    │
69    // ├─────────────┼────────────┤
70    // │ Value 1     │ Value 2    │
71    // ├─────────────┼────────────┤
72    // │ Value three │ Value four │
73    // └─────────────┴────────────┘
74    println!("With unicode:");
75    table.set_format(
76        format::FormatBuilder::new()
77            .column_separator('│')
78            .borders('│')
79            .separators(
80                &[format::LinePosition::Top],
81                format::LineSeparator::new('─', '┬', '┌', '┐'),
82            )
83            .separators(
84                &[format::LinePosition::Intern],
85                format::LineSeparator::new('─', '┼', '├', '┤'),
86            )
87            .separators(
88                &[format::LinePosition::Bottom],
89                format::LineSeparator::new('─', '┴', '└', '┘'),
90            )
91            .padding(1, 1)
92            .build(),
93    );
94    table.printstd();
95
96    // Customized format with unicode and different padding
97    // Example to print
98    // ┌───────────────┬──────────────┐
99    // │  Title 1      │  Title 2     │
100    // ├───────────────┼──────────────┤
101    // │  Value 1      │  Value 2     │
102    // ├───────────────┼──────────────┤
103    // │  Value three  │  Value four  │
104    // └───────────────┴──────────────┘
105    // Change individual format settings
106    println!("With unicode and padding:");
107    table.get_format().padding(2, 2);
108    table.printstd();
109}
Source

pub fn borders(self, border: char) -> Self

Set the character used for table borders

Examples found in repository?
examples/formatting.rs (line 55)
3fn main() {
4    let mut table = table!(["Value 1", "Value 2"], ["Value three", "Value four"]);
5    table.set_titles(row!["Title 1", "Title 2"]);
6
7    // Print
8    // +-------------+------------+
9    // | Title 1     | Title 2    |
10    // +-------------+------------+
11    // | Value 1     | Value 2    |
12    // | Value three | Value four |
13    // +-------------+------------+
14    println!("FORMAT_NO_LINESEP_WITH_TITLE :");
15    table.set_format(*format::consts::FORMAT_NO_LINESEP_WITH_TITLE);
16    table.printstd();
17    println!("");
18
19    // Print
20    // -------------------------
21    //  Title 1      Title 2
22    // =========================
23    //  Value 1      Value 2
24    // -------------------------
25    //  Value three  Value four
26    // -------------------------
27    println!("FORMAT_NO_COLSEP :");
28    table.set_format(*format::consts::FORMAT_NO_COLSEP);
29    table.printstd();
30    println!("");
31
32    // Print
33    // +-------------------------+
34    // | Title 1      Title 2    |
35    // +=========================+
36    // | Value 1      Value 2    |
37    // | Value three  Value four |
38    // +-------------------------+
39    println!("FORMAT_BORDERS_ONLY :");
40    table.set_format(*format::consts::FORMAT_BORDERS_ONLY);
41    table.printstd();
42    println!("");
43
44    // Custom format can be implemented using `prettytable::format::FormatBuilder`
45    // Example to print
46    // +-------------+------------+
47    // | Title 1     | Title 2    |
48    // | Value 1     | Value 2    |
49    // | Value three | Value four |
50    // +-------------+------------+
51    println!("Custom :");
52    table.set_format(
53        format::FormatBuilder::new()
54            .column_separator('|')
55            .borders('|')
56            .separators(
57                &[format::LinePosition::Top, format::LinePosition::Bottom],
58                format::LineSeparator::new('-', '+', '+', '+'),
59            )
60            .padding(1, 1)
61            .build(),
62    );
63    table.printstd();
64
65    // Customized format with unicode
66    // Example to print
67    // ┌─────────────┬────────────┐
68    // │ Title 1     │ Title 2    │
69    // ├─────────────┼────────────┤
70    // │ Value 1     │ Value 2    │
71    // ├─────────────┼────────────┤
72    // │ Value three │ Value four │
73    // └─────────────┴────────────┘
74    println!("With unicode:");
75    table.set_format(
76        format::FormatBuilder::new()
77            .column_separator('│')
78            .borders('│')
79            .separators(
80                &[format::LinePosition::Top],
81                format::LineSeparator::new('─', '┬', '┌', '┐'),
82            )
83            .separators(
84                &[format::LinePosition::Intern],
85                format::LineSeparator::new('─', '┼', '├', '┤'),
86            )
87            .separators(
88                &[format::LinePosition::Bottom],
89                format::LineSeparator::new('─', '┴', '└', '┘'),
90            )
91            .padding(1, 1)
92            .build(),
93    );
94    table.printstd();
95
96    // Customized format with unicode and different padding
97    // Example to print
98    // ┌───────────────┬──────────────┐
99    // │  Title 1      │  Title 2     │
100    // ├───────────────┼──────────────┤
101    // │  Value 1      │  Value 2     │
102    // ├───────────────┼──────────────┤
103    // │  Value three  │  Value four  │
104    // └───────────────┴──────────────┘
105    // Change individual format settings
106    println!("With unicode and padding:");
107    table.get_format().padding(2, 2);
108    table.printstd();
109}
Source

pub fn left_border(self, border: char) -> Self

Set the character used for left table border

Source

pub fn right_border(self, border: char) -> Self

Set the character used for right table border

Source

pub fn separator(self, what: LinePosition, separator: LineSeparator) -> Self

Set a line separator format

Source

pub fn separators(self, what: &[LinePosition], separator: LineSeparator) -> Self

Set separator format for multiple kind of line separators

Examples found in repository?
examples/formatting.rs (lines 56-59)
3fn main() {
4    let mut table = table!(["Value 1", "Value 2"], ["Value three", "Value four"]);
5    table.set_titles(row!["Title 1", "Title 2"]);
6
7    // Print
8    // +-------------+------------+
9    // | Title 1     | Title 2    |
10    // +-------------+------------+
11    // | Value 1     | Value 2    |
12    // | Value three | Value four |
13    // +-------------+------------+
14    println!("FORMAT_NO_LINESEP_WITH_TITLE :");
15    table.set_format(*format::consts::FORMAT_NO_LINESEP_WITH_TITLE);
16    table.printstd();
17    println!("");
18
19    // Print
20    // -------------------------
21    //  Title 1      Title 2
22    // =========================
23    //  Value 1      Value 2
24    // -------------------------
25    //  Value three  Value four
26    // -------------------------
27    println!("FORMAT_NO_COLSEP :");
28    table.set_format(*format::consts::FORMAT_NO_COLSEP);
29    table.printstd();
30    println!("");
31
32    // Print
33    // +-------------------------+
34    // | Title 1      Title 2    |
35    // +=========================+
36    // | Value 1      Value 2    |
37    // | Value three  Value four |
38    // +-------------------------+
39    println!("FORMAT_BORDERS_ONLY :");
40    table.set_format(*format::consts::FORMAT_BORDERS_ONLY);
41    table.printstd();
42    println!("");
43
44    // Custom format can be implemented using `prettytable::format::FormatBuilder`
45    // Example to print
46    // +-------------+------------+
47    // | Title 1     | Title 2    |
48    // | Value 1     | Value 2    |
49    // | Value three | Value four |
50    // +-------------+------------+
51    println!("Custom :");
52    table.set_format(
53        format::FormatBuilder::new()
54            .column_separator('|')
55            .borders('|')
56            .separators(
57                &[format::LinePosition::Top, format::LinePosition::Bottom],
58                format::LineSeparator::new('-', '+', '+', '+'),
59            )
60            .padding(1, 1)
61            .build(),
62    );
63    table.printstd();
64
65    // Customized format with unicode
66    // Example to print
67    // ┌─────────────┬────────────┐
68    // │ Title 1     │ Title 2    │
69    // ├─────────────┼────────────┤
70    // │ Value 1     │ Value 2    │
71    // ├─────────────┼────────────┤
72    // │ Value three │ Value four │
73    // └─────────────┴────────────┘
74    println!("With unicode:");
75    table.set_format(
76        format::FormatBuilder::new()
77            .column_separator('│')
78            .borders('│')
79            .separators(
80                &[format::LinePosition::Top],
81                format::LineSeparator::new('─', '┬', '┌', '┐'),
82            )
83            .separators(
84                &[format::LinePosition::Intern],
85                format::LineSeparator::new('─', '┼', '├', '┤'),
86            )
87            .separators(
88                &[format::LinePosition::Bottom],
89                format::LineSeparator::new('─', '┴', '└', '┘'),
90            )
91            .padding(1, 1)
92            .build(),
93    );
94    table.printstd();
95
96    // Customized format with unicode and different padding
97    // Example to print
98    // ┌───────────────┬──────────────┐
99    // │  Title 1      │  Title 2     │
100    // ├───────────────┼──────────────┤
101    // │  Value 1      │  Value 2     │
102    // ├───────────────┼──────────────┤
103    // │  Value three  │  Value four  │
104    // └───────────────┴──────────────┘
105    // Change individual format settings
106    println!("With unicode and padding:");
107    table.get_format().padding(2, 2);
108    table.printstd();
109}
Source

pub fn indent(self, spaces: usize) -> Self

Set global indentation in spaces used when rendering a table

Source

pub fn build(&self) -> TableFormat

Return the generated TableFormat

Examples found in repository?
examples/formatting.rs (line 61)
3fn main() {
4    let mut table = table!(["Value 1", "Value 2"], ["Value three", "Value four"]);
5    table.set_titles(row!["Title 1", "Title 2"]);
6
7    // Print
8    // +-------------+------------+
9    // | Title 1     | Title 2    |
10    // +-------------+------------+
11    // | Value 1     | Value 2    |
12    // | Value three | Value four |
13    // +-------------+------------+
14    println!("FORMAT_NO_LINESEP_WITH_TITLE :");
15    table.set_format(*format::consts::FORMAT_NO_LINESEP_WITH_TITLE);
16    table.printstd();
17    println!("");
18
19    // Print
20    // -------------------------
21    //  Title 1      Title 2
22    // =========================
23    //  Value 1      Value 2
24    // -------------------------
25    //  Value three  Value four
26    // -------------------------
27    println!("FORMAT_NO_COLSEP :");
28    table.set_format(*format::consts::FORMAT_NO_COLSEP);
29    table.printstd();
30    println!("");
31
32    // Print
33    // +-------------------------+
34    // | Title 1      Title 2    |
35    // +=========================+
36    // | Value 1      Value 2    |
37    // | Value three  Value four |
38    // +-------------------------+
39    println!("FORMAT_BORDERS_ONLY :");
40    table.set_format(*format::consts::FORMAT_BORDERS_ONLY);
41    table.printstd();
42    println!("");
43
44    // Custom format can be implemented using `prettytable::format::FormatBuilder`
45    // Example to print
46    // +-------------+------------+
47    // | Title 1     | Title 2    |
48    // | Value 1     | Value 2    |
49    // | Value three | Value four |
50    // +-------------+------------+
51    println!("Custom :");
52    table.set_format(
53        format::FormatBuilder::new()
54            .column_separator('|')
55            .borders('|')
56            .separators(
57                &[format::LinePosition::Top, format::LinePosition::Bottom],
58                format::LineSeparator::new('-', '+', '+', '+'),
59            )
60            .padding(1, 1)
61            .build(),
62    );
63    table.printstd();
64
65    // Customized format with unicode
66    // Example to print
67    // ┌─────────────┬────────────┐
68    // │ Title 1     │ Title 2    │
69    // ├─────────────┼────────────┤
70    // │ Value 1     │ Value 2    │
71    // ├─────────────┼────────────┤
72    // │ Value three │ Value four │
73    // └─────────────┴────────────┘
74    println!("With unicode:");
75    table.set_format(
76        format::FormatBuilder::new()
77            .column_separator('│')
78            .borders('│')
79            .separators(
80                &[format::LinePosition::Top],
81                format::LineSeparator::new('─', '┬', '┌', '┐'),
82            )
83            .separators(
84                &[format::LinePosition::Intern],
85                format::LineSeparator::new('─', '┼', '├', '┤'),
86            )
87            .separators(
88                &[format::LinePosition::Bottom],
89                format::LineSeparator::new('─', '┴', '└', '┘'),
90            )
91            .padding(1, 1)
92            .build(),
93    );
94    table.printstd();
95
96    // Customized format with unicode and different padding
97    // Example to print
98    // ┌───────────────┬──────────────┐
99    // │  Title 1      │  Title 2     │
100    // ├───────────────┼──────────────┤
101    // │  Value 1      │  Value 2     │
102    // ├───────────────┼──────────────┤
103    // │  Value three  │  Value four  │
104    // └───────────────┴──────────────┘
105    // Change individual format settings
106    println!("With unicode and padding:");
107    table.get_format().padding(2, 2);
108    table.printstd();
109}

Trait Implementations§

Source§

impl Default for FormatBuilder

Source§

fn default() -> FormatBuilder

Returns the “default value” for a type. Read more
Source§

impl From<TableFormat> for FormatBuilder

Source§

fn from(fmt: TableFormat) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.