Struct AsciiEscapedString

Source
pub struct AsciiEscapedString(/* private fields */);
Expand description

Simple string with ASCII escape sequences in it

§Example

use stybulate::{AsciiEscapedString, Unstyle};
let s = AsciiEscapedString::from("This is \x1b[1;31;44mbold red with blue background\x1b[0m");
assert_eq!("This is bold red with blue background", s.unstyle());

Implementations§

Source§

impl AsciiEscapedString

Source

pub fn from(s: &str) -> Self

Constructs an AsciiEscapedString from a &str

Examples found in repository?
examples/colored_content.rs (lines 11-13)
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}

Trait Implementations§

Source§

impl Display for AsciiEscapedString

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Unstyle for AsciiEscapedString

Source§

fn unstyle(&self) -> String

Returns the same string without the style-related chars/codepoints
Source§

fn nb_of_lines(&self) -> usize

Returns the number of lines in the string

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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
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.