ANSI терминал
ANSI терминал
Эта программа обрисовывает использование ansi_term
крейта и как он используется для отображения текста с различным цветом, форматированием, к примеру, жирный синий или жёлтый подчёркнутый текст, на ANSI терминалах.
У нас в наличии две главных структуры данных в [ansi_term
]: ANSIString
и Style
. Структура Style
содержит информацию о стиле: цвета, должен ли текст быть жирным или мигающим или ещё каким-то. Есть два варианта Colour, которые представляют простые цвета букв. Структура ANSIString
-- это просто строка в паре со Style
.
Примечание: Если вы изучаете английский язык (а это скорее всего вещь обязательная для сферы IT), то стоит заметить, что в британском английском используется слово Colour, а в американском английском Color. При этом в библиотеке определён именно тип Colour
, не путайте.
Вывод цветного текста на терминал
extern crate ansi_term; use ansi_term::Colour; fn main() { println!("This is {} in color, {} in color and {} in color", Colour::Red.paint("red"), Colour::Blue.paint("blue"), Colour::Green.paint("green")); }
Жирный текст в терминале
Для чего-то более сложного, чем простое изменения цвета переднего плана, нам уже нужно сконструировать экземпляр Style
. Метод Style::new()
создаёт экземпляр и её свойства устанавливаются цепочкой вызовов.
extern crate ansi_term; use ansi_term::Style; fn main() { println!("{} and this is not", Style::new().bold().paint("This is Bold")); }
Жирный и цветной текст в терминале
Colour
реализует множество функций, наподобие функциям из Style
и позволяет объединять вызовы в цепочку.
extern crate ansi_term; use ansi_term::Colour; use ansi_term::Style; fn main(){ println!("{}, {} and {}", Colour::Yellow.paint("This is colored"), Style::new().bold().paint("this is bold"), Colour::Yellow.bold().paint("this is bold and colored")); }