pub struct Headers { /* private fields */ }Expand description
The Headers structure is a list of headers (per column)
§Example
use stybulate::{AsciiEscapedString, Headers};
// simple example with only strings
let simple = Headers::from(vec!["foo", "bar"]);
// more elaborated example with a mix of a styled string and a simple string
let mut with_style = Headers::with_capacity(2);
with_style
.push(AsciiEscapedString::from("\x1b[1;35mfoo\x1b[0m bar"))
.push(String::from("baz"));Implementations§
Source§impl Headers
impl Headers
Sourcepub fn from(headers: Vec<&str>) -> Self
pub fn from(headers: Vec<&str>) -> Self
Headers constructor from a vec of &str
Examples found in repository?
examples/simple.rs (line 11)
3fn main() {
4 // A simple table with strings and numbers and the default alignments
5 let mut table = Table::new(
6 Style::Fancy,
7 vec![
8 vec![Cell::from("spam"), Cell::Float(41.9999)],
9 vec![Cell::from("eggs"), Cell::Int(451)],
10 ],
11 Some(Headers::from(vec!["strings", "numbers"])),
12 );
13 println!("{}", table.tabulate());
14 /* Will print:
15 ╒═══════════╤═══════════╕
16 │ strings │ numbers │
17 ╞═══════════╪═══════════╡
18 │ spam │ 41.9999 │
19 ├───────────┼───────────┤
20 │ eggs │ 451 │
21 ╘═══════════╧═══════════╛
22 */
23
24 // Alignment can be changed like so:
25 table.set_align(Align::Right, Align::Center);
26 println!("{}", table.tabulate());
27 /* Will print:
28 ╒═══════════╤═══════════╕
29 │ strings │ numbers │
30 ╞═══════════╪═══════════╡
31 │ spam │ 41.9999 │
32 ├───────────┼───────────┤
33 │ eggs │ 451.0000 │
34 ╘═══════════╧═══════════╛
35 */
36
37 // With the feature "ansi_term_style", the borders style can be changed like so:
38 table.set_border_style(ansi_term::Color::Cyan.bold());
39 println!("{}", table.tabulate());
40 // Will print same as above but with bold and colored borders
41}More examples
examples/colored_content.rs (line 40)
3fn main() {
4 // Colored content can be inserted either with AsciiEscapedString
5 let table = Table::new(
6 Style::Presto,
7 vec![
8 vec![Cell::from("Normal"), Cell::from("Stybulate")],
9 vec![
10 Cell::from("Red"),
11 Cell::Text(Box::new(AsciiEscapedString::from(
12 "\x1b[31mStybulate\x1b[0m",
13 ))),
14 ],
15 vec![
16 Cell::from("Green"),
17 Cell::Text(Box::new(AsciiEscapedString::from(
18 "\x1b[32mStybulate\x1b[0m",
19 ))),
20 ],
21 vec![
22 Cell::from("Yellow"),
23 Cell::Text(Box::new(AsciiEscapedString::from(
24 "\x1b[33mStybulate\x1b[0m",
25 ))),
26 ],
27 vec![
28 Cell::from("Blue"),
29 Cell::Text(Box::new(AsciiEscapedString::from(
30 "\x1b[34mStybulate\x1b[0m",
31 ))),
32 ],
33 vec![
34 Cell::from("Mutlicolor and blinking (because why not?)"),
35 Cell::Text(Box::new(AsciiEscapedString::from(
36 "\x1b[5;30mS\x1b[31mt\x1b[32my\x1b[33mb\x1b[34mu\x1b[35ml\x1b[36ma\x1b[37mt\x1b[30me\x1b[0m",
37 ))),
38 ],
39 ],
40 Some(Headers::from(vec!["Style", "Text"])),
41 );
42 println!("{}", table.tabulate());
43
44 // or with ansi_term ANSIStrings (with the feature "ansi_term_style")
45 use ansi_term::ANSIStrings;
46 use ansi_term::Color::*;
47 let red_stybulate = &[Red.paint("Stybulate")];
48 let green_stybulate = &[Green.paint("Stybulate")];
49 let yellow_stybulate = &[Yellow.paint("Stybulate")];
50 let blue_stybulate = &[Blue.paint("Stybulate")];
51 let multicolorandblinking_stybulate = &[
52 Black.blink().paint("S"),
53 Red.blink().paint("t"),
54 Green.blink().paint("y"),
55 Yellow.blink().paint("b"),
56 Blue.blink().paint("u"),
57 Purple.blink().paint("l"),
58 Cyan.blink().paint("a"),
59 White.blink().paint("t"),
60 Black.blink().paint("e"),
61 ];
62 let table2 = Table::new(
63 Style::FancyGithub,
64 vec![
65 vec![Cell::from("Normal"), Cell::from("Stybulate")],
66 vec![
67 Cell::from("Red"),
68 Cell::Text(Box::new(ANSIStrings(red_stybulate))),
69 ],
70 vec![
71 Cell::from("Green"),
72 Cell::Text(Box::new(ANSIStrings(green_stybulate))),
73 ],
74 vec![
75 Cell::from("Yellow"),
76 Cell::Text(Box::new(ANSIStrings(yellow_stybulate))),
77 ],
78 vec![
79 Cell::from("Blue"),
80 Cell::Text(Box::new(ANSIStrings(blue_stybulate))),
81 ],
82 vec![
83 Cell::from("Mutlicolor and blinking (because why not?)"),
84 Cell::Text(Box::new(ANSIStrings(multicolorandblinking_stybulate))),
85 ],
86 ],
87 Some(Headers::from(vec!["Style", "Text"])),
88 );
89 println!("{}", table2.tabulate());
90}Sourcepub fn with_capacity(capacity: usize) -> Self
pub fn with_capacity(capacity: usize) -> Self
Headers constructor with capacity
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Headers
impl !RefUnwindSafe for Headers
impl !Send for Headers
impl !Sync for Headers
impl Unpin for Headers
impl !UnwindSafe for Headers
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more